(57)【特許請求の範囲】
【請求項１】
着信割り込みの処理を制御するための割り込み処理レジスタのセットを含む、複数のシステム・レジスタと、
複数の実行レベルでソフトウェアを実行するように構成された処理回路と、
前記着信割り込みを、前記複数の実行レベルの内の１つで動作するように構成された割り込み処理ソフトウェアにルーティングするように構成された割り込みコントローラ回路と、
ルーティングされた着信割り込みを処理するための割り込み処理ソフトウェアにより、割り込み処理レジスタのセットに含まれる割り込み処理レジスタのうちのいずれにアクセスしうるものとするのかを、動的に制御するように構成されたレジスタ・アクセス制御回路であって、着信割り込みにおいて意図された実行レベルで動作するように構成された割り込み処理ソフトウェアによりアクセスしうる割り込み処理レジスタを、ある特定の場合に、ある特定の割り込み処理ソフトウェアを実行することによっても、アクセスしうるように制御するように構成されており、前記ある特定の場合は、前記着信割り込みにおいて意図された実行レベルよりも、より特権のない実行レベルで動作するように構成された割り込み処理ソフトウェアに、前記着信割り込みがルーティングされた場合であり、前記ある特定の割り込み処理ソフトウェアは、前記より特権のない実行レベルで動作するように構成されルーティング先となった割り込み処理ソフトウェアである、前記レジスタ・アクセス制御回路と
を備える、データ処理装置。
【請求項２】
前記複数の実行レベルが、ＥＬ０と、ＥＬ１と、ＥＬ２と、ＥＬ３とからなり、
ＥＬ０は、ユーザ・ソフトウェアが動作する実行レベルであり、且つＥＬ１より特権がなく、
ＥＬ１は、ゲスト・オペレーティング・システムが動作する実行レベルであり、且つ、ＥＬ２より特権がなく、
ＥＬ２は、ハイパーバイザが動作する実行レベルであり、且つ、ＥＬ３より特権がなく、
ＥＬ３は、セキュア・モニタが動作する実行レベルである、
請求項１に記載のデータ処理装置。
【請求項３】
前記レジスタ・アクセス制御回路が、着信割り込みにおいて意図された実行レベルに基づいて、着信割り込みがルーティングされた割り込み処理ソフトウェアによりアクセスしうる割り込み処理レジスタがいずれとなるのかを動的に制御するように構成されているものである、請求項１又は２のいずれかに記載のデータ処理装置。
【請求項４】
前記割り込みコントローラ回路が、
前記処理回路の現在の実行モードを検出するように構成されたプロセッサ・モード検出回路と、
意図された実行モードで、及び意図された実行レベルで動作するように構成された割り込み処理ソフトウェアのために意図された前記着信割り込みを受信するように構成された入力回路と、
目標の実行レベルで動作するように構成された割り込み処理ソフトウェアに前記着信割り込みをルーティングするように構成されたルーティング回路であって、
前記意図された実行レベルで動作するように構成された割り込み処理ソフトウェアに前記着信割り込みをルーティングするために、前記処理回路の前記現在の実行モードに対応する意図された実行モードを有する受信された前記着信割り込みに応答し、
前記意図された実行レベルより特権のある既定の実行レベルで動作するように構成された割り込み処理ソフトウェアに前記着信割り込みをルーティングするために、前記処理回路の前記現在の実行モードに対応しない意図された実行モードを有する受信された前記着信割り込みに応答する、
ように構成されたルーティング回路と
を備える、請求項１から３までのいずれか一項に記載のデータ処理装置。
【請求項５】
前記現在の実行モードと前記意図された実行モードとが、セキュア・モード又は非セキュア・モードのいずれかであり、前記セキュア・モードで動作する前記処理回路が、前記非セキュア・モードで動作する前記処理回路にアクセス可能ではないセキュア・データへのアクセスを有する、請求項４に記載のデータ処理装置。
【請求項６】
前記意図された実行レベルより特権のある前記既定の実行レベルが、最も特権のある実行レベルである、請求項４又は５のいずれかに記載のデータ処理装置。
【請求項７】
前記意図された実行レベルより特権のある前記既定の実行レベルが、ＥＬ３であり、且つ、セキュア・モニタが動作する実行レベルである、請求項４から６までのいずれか一項に記載のデータ処理装置。
【請求項８】
前記プロセッサ・モード検出回路が、前記割り込み処理レジスタ内の確認応答レジスタを備え、
前記確認応答レジスタから、予め定義された値が返されるときには、当該予め定義された値は、受信された着信割り込みが保留されていることを示し、且つ、前記受信した着信割り込みが、前記現在の実行モードに対応しない意図された実行モードを有していることを示すものである、
請求項４から７までのいずれか一項に記載のデータ処理装置。
【請求項９】
前記データ処理装置が、前記意図された実行レベルより特権のある既定の実行レベルで動作するように構成された前記割り込み処理ソフトウェアに基づいて、前記処理回路の前記実行モードを変更することによって前記予め定義された値を格納する前記確認応答レジスタに対して応答し、その後、前記ルーティング回路に、前記着信割り込みを、前記意図された実行レベルで動作するように構成された割り込み処理ソフトウェアにルーティングさせるように構成される、請求項８に記載のデータ処理装置。
【請求項１０】
前記データ処理装置が、前記意図された実行レベルより特権のある既定の実行レベルで動作するように構成された前記割り込み処理ソフトウェアに基づいて、前記着信割り込みを処理することによって前記予め定義された値を格納する前記確認応答レジスタに対して応答するように構成される、請求項８に記載のデータ処理装置。
【請求項１１】
前記ルーティング回路は、割り込み処理ソフトウェアに前記着信割り込みをルーティングするのに、割り込み例外を生成し、前記割り込み例外を割り込み処理ソフトウェアに転送することによって行うように構成され、前記割り込み処理ソフトウェアは、前記意図された実行レベル、あるいは、前記意図された実行レベルより特権のある既定の実行レベルのいずれかで、動作するよう構成される、請求項４から１０までのいずれか一項に記載のデータ処理装置。
【請求項１２】
前記割り込みコントローラ回路が、
第１の設定であって、前記割り込みコントローラが、既定の実行レベルで動作するように構成された割り込み処理ソフトウェアに着信割り込みをルーティングする、第１の設定と、
第２の設定であって、
前記割り込みコントローラが、前記既定の実行レベルで動作するように構成された前記割り込み処理ソフトウェアに着信割り込みをルーティングせず、
前記少なくとも１つの着信割り込みが、前記既定の実行レベルより特権のある実行レベルで動作するように構成された割り込み処理ソフトウェアにルーティングされ、
少なくとも１つの仮想割り込みが、前記既定の実行レベルより特権のある前記実行レベルで動作するように構成された割り込み処理ソフトウェアにより生成され、
前記少なくとも１つの仮想割り込みが、前記既定の実行レベルで動作するように構成された前記割り込み処理ソフトウェアにルーティングされる、
第２の設定と
の間で切り替え可能である、請求項１から１１までのいずれか一項に記載のデータ処理装置。
【請求項１３】
前記既定の実行レベルより特権のある前記実行レベルが、ハイパーバイザが動作するレベルであるＥＬ２である、請求項１２に記載のデータ処理装置。
【請求項１４】
着信割り込みの処理を制御するための割り込み処理レジスタのセットを備える、複数のシステム・レジスタと、
複数の実行レベルでソフトウェアを実行するための処理手段と、
前記複数の実行レベルの内の１つで動作するように構成された割り込み処理ソフトウェアに前記着信割り込みをルーティングするための割り込みコントローラ手段と、
ルーティングされた着信割り込みを処理するための割り込み処理ソフトウェアにより、割り込み処理レジスタのセットに含まれる割り込み処理レジスタのうちのいずれにアクセスしうるものとするのかを、動的に制御するように構成されたレジスタ・アクセス制御手段であって、着信割り込みにおいて意図された実行レベルで動作するように構成された割り込み処理ソフトウェアによりアクセスしうる割り込み処理レジスタを、ある特定の場合に、ある特定の割り込み処理ソフトウェアを実行することによっても、アクセスしうるように制御するように構成されており、前記ある特定の場合は、前記着信割り込みにおいて意図された実行レベルよりも、より特権のない実行レベルで動作するように構成された割り込み処理ソフトウェアに、前記着信割り込みがルーティングされた場合であり、前記ある特定の割り込み処理ソフトウェアは、前記より特権のない実行レベルで動作するように構成されルーティング先となった割り込み処理ソフトウェアである、前記レジスタ・アクセス制御手段と
を備える、データ処理装置。
【請求項１５】
複数の実行レベルの中から宛先実行レベルで動作するように構成された割り込み処理ソフトウェアにルーティングされる着信割り込みを処理するための割り込み処理レジスタのセットの少なくともいくつかへのアクセスを動的に制御する方法であって、
前記着信割り込みがルーティングされる宛先実行レベルを決定するステップと、
ルーティングされた着信割り込みを処理するための割り込み処理ソフトウェアにより、割り込み処理レジスタのセットに含まれる割り込み処理レジスタのうちのいずれにアクセスしうるものとするのかを、動的に制御するステップであって、着信割り込みにおいて意図された実行レベルで動作するように構成された割り込み処理ソフトウェアによりアクセスしうる割り込み処理レジスタを、ある特定の場合に、ある特定の割り込み処理ソフトウェアを実行することによっても、アクセスしうるように制御するように構成されており、前記ある特定の場合は、前記着信割り込みにおいて意図された実行レベルよりも、より特権のない実行レベルで動作するように構成された割り込み処理ソフトウェアに、前記着信割り込みがルーティングされた場合であり、前記ある特定の割り込み処理ソフトウェアは、前記より特権のない実行レベルで動作するように構成されルーティング先となった割り込み処理ソフトウェアである、前記動的に制御するステップと
を含む、方法。
【請求項１６】
請求項１５に記載の方法を実行するように処理装置を制御するためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムにおける割り込み処理の分野に関する。
【背景技術】
【０００２】
ハイパーバイザ・システムは、様々な異なる実行レベルで動作することが知られている。実行レベルは、階層化されており、高位の実行レベルには、下位の実行レベルよりも多くのデータ処理システムへの特権が与えられる。一般的に、特定の実行レベルは、より下位の実行レベルが可能な任意の動作を実行し、任意のデータにアクセスすることができる。
【０００３】
仮想化システムは、４つの実行レベルを使用して動作することができる。ユーザ・ソフトウェアは、最も低く、最も特権のない特権レベル、ＥＬ０で実行され得る。このソフトウェアには、日々の仕事でユーザにより実行されるアプリケーションや、正しく実行するために何らの特別な特権も必要としないソフトウェアが含まれ得る。
【０００４】
オペレーティング・システムは、次に高いレベル、ＥＬ１で実行され得る。一般に、オペレーティング・システムは、その下のＥＬ０で動作する複数のユーザ・アプリケーションを管理し、ユーザ・アプリケーションがハードウェア資源へアクセスすることを可能とする。したがって、ＥＬ１内で実行するオペレーティング・システムは、ＥＬ０下で動作するユーザ・アプリケーションの挙動にアクセスし、制御することが可能であるように、ＥＬ０に対して高い特権レベルを有している。
【０００５】
ハイパーバイザは、ＥＬ２で動作し得る。ハイパーバイザは、通常、ＥＬ１下で実行する複数のオペレーティング・システムの数、行動、及び資源管理を制御する。複数のオペレーティング・システムがハードウェア資源へのアクセスのために競合し得ることから、ハイパーバイザは、このようなアクセス要求を認める、又は拒否することができなければならない。したがって、ハイパーバイザは、ＥＬ１で動作するオペレーティング・システムと比べて、より高い特権レベルＥＬ２で動作する。
【０００６】
また、データ処理システムが、セキュア及び非セキュア状態などの、様々な実行モードで動作することも知られている。セキュア及び非セキュア状態の両者で動作することができるデータ処理装置を提供することにより、セキュア動作の実行を非セキュア動作のそれから分離することが可能である。さらに、セキュアであるべきと考えられているデータは、セキュアではないデータから分離しておくことができる。したがって、セキュア・データ及びセキュア動作は、セキュアではないとみなされ得る他のデータ及び動作から分離することができる。したがって、システムのセキュリティが保たれる。また、ハイパーバイザ・システムは、セキュア及び非セキュア・モードで動作することもできる。これらの例では、各実行レベルは、セキュア及び非セキュア・モードの一方又はいずれでも動作することができる。
【０００７】
セキュア及び非セキュア・モード間の切り替えは、非セキュアな動作モードで実行されるソフトウェアがセキュアな動作モードに属するデータにアクセスできないこと、及び場合によってはその逆を保証するために、最もセキュアで且つ特権のある実行レベルで処理されなければならない。したがって、この切り替えを制御するセキュア・モニタが動作するＥＬ３レベルが提供され得る。このＥＬ３レベルは、最高の特権レベルであり、その責任は、モードの変更が要求されるときを決定し、この要求された実行モードの変更を有効にすることである。
【０００８】
複数の異なる実行レベルで動作するシステム内で割り込みを処理する場合、割り込みの処理中に使用される特定のデータ記憶要素を分離する必要がある。例えば、システム・レジスタのサブセットは、実行レベルＥＬ１又はそれ以上で動作するソフトウェアのみがレジスタの第１のサブセットにアクセスでき、実行レベルＥＬ２又はそれ以上で動作するソフトウェアのみがレジスタの第２のサブセットにアクセスでき、実行レベルＥＬ３で実行するソフトウェアのみが、サブセットのレジスタの第３のセットにアクセスできるというように、分割され得る。この分割は、必要に応じて、セキュア及び非セキュアな動作モードの両者に対して行われ得る。このような分離は、低位の実行レベルで動作するソフトウェアが、上位の実行レベルで動作するソフトウェアの実行に干渉したり、又は影響を及ぼしたりすることができないことを保証する。
【発明の概要】
【課題を解決するための手段】
【０００９】
本発明の第１の態様によれば、着信割り込みの処理を制御するための割り込み処理レジスタのセットを含む複数のシステム・レジスタと、複数の実行レベルでソフトウェアを実行するように構成された処理回路と、前記着信割り込みを、前記複数の実行レベルの１つで動作するように構成された割り込み処理ソフトウェアにルーティングするように構成された割り込みコントローラ回路と、前記実行レベルで動作するように構成された割り込み処理ソフトウェアが、前記着信割り込みを処理するための前記割り込み処理レジスタの少なくともいくつかへのアクセスを有するように、且つ、前記実行レベルで動作するように構成された前記割り込み処理ソフトウェアが、より特権のある実行レベルで動作する割り込み処理ソフトウェアにルーティングされる第２の着信割り込みを処理するための割り込み処理レジスタへのアクセスを有しないように、前記着信割り込みがルーティングされる、前記複数の実行レベルの内の前記１つに応じて前記割り込み処理レジスタの前記少なくともいくつかへのアクセスを動的に制御するように構成されたレジスタ・アクセス制御回路と、を備えたデータ処理装置が提供される。
【００１０】
上記によれば、一組の割り込み処理レジスタへのアクセスは、着信割り込みがルーティングされる特定の実行レベルに応じて動的に制御される。このことは、特定の実行レベルで動作する割り込み処理ソフトウェアが、特定の静的に定義されたレジスタのサブセット及び任意の低位でより特権のない実行レベルによる使用のために定義されたこれらのレジスタにのみアクセスが可能である公知のシステムと対照的である。このアクセス上の制限は、低位のレベルの特権で動作するソフトウェアが高位のレベルの特権で動作するソフトウェアに干渉することを防ぐために提供された。この結果、高い実行レベルを意図した割り込みが、低い実行レベルで動作する割り込み処理ソフトウェアにルーティングされた場合、割り込みは、普通は、処理され得ないこととなる。本発明の実施例は、割り込みの宛先の実行レベルに応じて割り込み処理レジスタのセットへのアクセスを動的に制御することを可能とすることにより、このことに対処している。
【００１１】
上記のシステムにおいて、特定の実行レベルで動作する割り込み処理ソフトウェアは、特定の着信割り込みを処理できるように動的に変更される割り込み処理レジスタ内のレジスタのセットへのアクセスを有することができる。その結果、着信割り込みが、任意の実行レベルで動作する割り込み処理ソフトウェアによって処理され得ることから、柔軟性が高まる。さらに、各実行レベルで動作する割り込み処理ソフトウェアは、着信割り込みに関係するシステム・レジスタへのアクセスのみを有することから、システムのセキュリティが維持される。このシステムの別の利点は、特定の割り込みを処理するのに、ある特定の実行レベルで動作する割り込み処理ソフトウェアを必要としないことから、ソフトウェアが、より移植可能にできることである。その代わりに、いかなる割り込みも、異なる実行レベルで動作する割り込み処理ソフトウェアにルーティングすることができ、そこでもこの割り込みを処理することができる。上記のさらに別の利点は、非セキュアなソフトウェア、セキュアなオペレーティング・システム、又はセキュア・モニタの所望のいずれにも、明示的に割り込みをルーティングすることが可能であることである。それによって、所与の割り込みを処理するために利用できる選択肢の数を増やすことにより、このようなシステムの柔軟性が改善される。
【００１２】
いくつかの実施例では、複数の実行レベルは、ＥＬ０、ＥＬ１、ＥＬ２及びＥＬ３からなる。ＥＬ０は、ユーザがソフトウェアを実行する実行レベルである。ＥＬ１は、ゲスト・オペレーティング・システムが実行される、より高い特権のある実行レベルである。ＥＬ２は、ハイパーバイザが実行され、ＥＬ２より多くの特権がある実行レベルである。ＥＬ３は、セキュア・モニタが実行される最も特権のある実行レベルである。ゲスト・オペレーティング・システム、ハイパーバイザ・ソフトウェア、及びセキュア・モニタのそれぞれが、割り込み処理ソフトウェアを含み得ることに留意されたい。
【００１３】
いくつかの実施例では、割り込み処理レジスタに与えられるアクセス権は、着信割り込みがルーティングされる実行レベルだけに依存し得る。
【００１４】
いくつかの実施例では、データ処理回路は、処理回路の現在の実行モードを検出するためのプロセッサ・モード検出回路、意図された実行モードで、及び意図された実行レベルで動作する特定の割り込みハンドラーのために意図された着信割り込みを受信する入力回路、及び、特定の実行レベルで動作するように構成されている割り込み処理ソフトウェアに着信割り込みをルーティングするためのルーティング回路をさらに含むことができる。
【００１５】
ルーティング回路が、処理回路の現在の実行モードに対応する意図された実行モードを有する着信割り込みを受信すると、着信割り込みは、意図された実行レベルで動作する割り込み処理ソフトウェアにルーティングされる。或いは、ルーティング回路が、処理回路の現在の実行モードに対応していない意図された実行モードを有する着信割り込みを受信すると、ルーティング回路は、意図された実行レベルより特権のある実行レベルで動作するように構成されて、もしかしたら最も特権がある実行レベルであり得る割り込み処理ソフトウェアに着信割り込みをルーティングする。いくつかの実施例では、着信割り込みは、セキュア・モニタが動作するのと同一の実行レベルで動作する割り込み処理ソフトウェアにルーティングすることができる。
【００１６】
現在の及び意図された実行モードはそれぞれ、セキュア・モード又は非セキュア・モードいずれであっても良い。セキュア・モードで動作する場合には、処理回路は、前記非セキュア・モードで動作する前記処理回路にアクセス可能ではない、セキュアなデータへのアクセスを有する。さらに、いくつかの実施例では、処理回路が非セキュア・モードで動作する場合、それは、セキュア・モードで動作する前記処理回路にアクセス可能ではない非セキュアなデータにアクセスする。
【００１７】
いくつかの実施例では、割り込み処理レジスタは、確認応答レジスタを備える。確認応答レジスタは、割り込みが保留されていることを示す。確認応答レジスタはまた、受信した着信割り込みが、現在の実行モードに対応しない意図された実行モードを有していることを示すための予め定義された値を返す。したがって、確認応答レジスタに対する予め定義された値は、着信割り込みが、着信割り込みに対して当初意図された実行レベルと異なる実行レベルで動作する割り込み処理ソフトウェアにルーティングされなければならないことを示すために使用され得る。いくつかの実施例では、確認応答レジスタが予め定義された値を返すとき、既定の、より特権のある実行レベルで動作する割り込み処理ソフトウェアが、処理回路の実行モードを変更し、その後、ルーティング回路をして、意図された実行レベルで動作する割り込み処理ソフトウェアに着信割り込みをルーティングさせ、そこで、この割り込みが再度取り出され、今度は完全に処理され、完了するように構成される。
【００１８】
他の実施例では、予め定義された値を返す確認応答レジスタに応答して、既定の実行レベルで動作する割り込み処理ソフトウェアは、着信割り込みを直接それ自身で処理し得る。このことは、例えば、意図された割り込み処理ソフトウェアが着信割り込みを処理できるようにプロセッサの動作モードを切り替えるよりも、実行レベルＥＬ３で動作する割り込み処理ソフトウェアが着信割り込みを処理したほうが、より効率的である場合に、生起し得る。
【００１９】
着信割り込みをルーティングするプロセスは、割り込み例外を発生させる場合があり、これは、その後、割り込み処理ソフトウェアに転送される。これらの割り込み例外は、システムにとって内部的なものであり、プロセッサに対して所与のクラスの割り込みの発生を示すために割り込みコントローラにより生成される。割り込み例外の実例としては、ＦＩＱ及びＩＲＱが含まれる。
【００２０】
いくつかの実施例では、データ処理装置は、仮想割り込みを発生させる。割り込みコントローラ回路は、第１の設定と第２の設定との間で切り替え可能であり得る。第１の設定では、着信割り込みは、意図された実行レベルよりも特権のある実行レベルで動作する割り込み処理ソフトウェアにルーティングされる。そして、仮想割り込みが、より特権のある実行レベルで動作する割り込み処理ソフトウェアにより生成され、意図された（より低い）レベルで動作する割り込み処理ソフトウェアへ転送される。第２の設定では、割り込みコントローラは、意図された（より低い）実行レベルで動作する割り込み処理ソフトウェアに着信割り込みをルーティングする。両方の設定において、低位の割り込み処理ソフトウェアは、着信割り込みを処理することができる。しかしながら、第２の設定では、着信割り込みは、より特権のある割り込み処理ソフトウェアが仮想割り込みを生成する必要なしに、意図された割り込み処理ソフトウェアに直接送信される。したがって、より高位の（より特権のある）割り込み処理ソフトウェアの処理負荷が、軽減される。これらの実施例のいくつかでは、より特権のあるレベルは、ハイパーバイザが動作するＥＬ２であろう。これらの実施態様のいくつかでは、より特権のあるレベルで動作する割り込み処理ソフトウェアも、より特権のないレベルで動作する割り込み処理ソフトウェアも、両者ともに、先に定義したように、非セキュアな動作モードで実行するように構成され得る。
【００２１】
本発明の第２の態様によれば、複数の実行レベルの中から宛先の実行レベルで動作する割り込み処理ソフトウェアにルーティングされる着信割り込みを処理するための割り込み処理レジスタのセットの少なくともいくつかへのアクセスを動的に制御する方法であって、前記着信割り込みがルーティングされる宛先実行レベルを決定するステップと、前記実行レベルで動作する割り込み処理ソフトウェアが、前記着信割り込みを処理するための前記割り込み処理レジスタの前記少なくともいくつかへのアクセスを有するように、且つ、前記実行レベルで動作する前記割り込み処理ソフトウェアが、より特権のある実行レベルで動作する割り込み処理ソフトウェアにルーティングされる第２の着信割り込みを処理するための割り込み処理レジスタへのアクセスを有しないように、前記宛先実行レベルで動作する前記割り込み処理ソフトウェアへのアクセスを許可するステップとを含む、方法が提供される。
【００２２】
第３の態様によれば、
着信割り込みの処理を制御するための割り込み処理レジスタのセットを備える、複数のシステム・レジスタと、
複数の実行レベルでソフトウェアを実行するための処理手段と、
前記複数の実行レベルの内の１つで動作するように構成された割り込み処理ソフトウェアに前記着信割り込みをルーティングするための割り込みコントローラ手段と、
前記実行レベルで動作するように構成された割り込み処理ソフトウェアが、前記着信割り込みを処理するための前記割り込み処理レジスタの前記少なくともいくつかへのアクセスを有するように、且つ、前記実行レベルで動作するように構成された前記割り込み処理ソフトウェアが、より特権のある実行レベルで動作する割り込み処理ソフトウェアにルーティングされる第２の着信割り込みを処理するための割り込み処理レジスタへのアクセスを有しないように、前記着信割り込みがルーティングされる、前記複数の実行レベルの内の前記１つに応じて、前記割り込み処理レジスタの前記少なくともいくつかへのアクセスを動的に制御するためのレジスタ・アクセス制御手段と
を備える、データ処理装置が提供される。
【００２３】
本発明の第４の態様によれば、複数の実行レベルでソフトウェアを実行するように構成された処理回路に着信割り込みをルーティングするための装置であって、プロセッサの現在の実行モードを検出するように構成されたプロセッサ・モード検出回路と、意図された実行モードで、及び意図された実行レベルで動作する割り込みハンドラーのために意図された前記着信割り込みを受信するように構成された入力回路と、目標の実行レベルで動作する割り込み処理ソフトウェアに前記着信割り込みをルーティングするように構成されたルーティング回路であって、前記意図された実行レベルで動作する割り込み処理ソフトウェアに前記着信割り込みをルーティングするために、前記処理回路の前記現在の実行モードに対応する意図された実行モードを有する受信された前記着信割り込みに応答し、且つ前記意図された実行レベルより特権のある既定の実行レベルで動作する割り込み処理ソフトウェアに前記着信割り込みをルーティングするために、前記処理回路の前記現在の実行モードに対応しない意図された実行モードを有する受信された前記着信割り込みに応答する、ように構成されるルーティング回路と、を備える装置が提供される。
【００２４】
この態様によれば、着信割り込みが、処理回路が現在動作に入っていない動作モードで実行されることが意図されるとき、着信割り込みが昇格される。割り込みの昇格により、割り込みが通常処理されることになるよりも、より高い実行レベルで動作する割り込み処理ソフトウェアにより処理される。このことは、処理回路が実行モードを着信割り込みにより要求されたモードに切り替えるようにさせ、それによって、当初意図されたように着信割り込みが処理されることを可能とし得る。或いは、割り込み処理ソフトウェアは、処理回路の実行モードに関わらず、且つ処理回路のモードを切り替えることなく、着信割り込みをそれ自身直接処理することができる。
【００２５】
本発明の第５の態様によれば、複数の実行レベルでソフトウェアを実行するように構成された処理回路に着信割り込みをルーティングするための方法であって、前記プロセッサの現在の実行モードを検出するステップと、意図された実行モードで、及び意図された実行レベルで動作する割り込みハンドラーのために意図された前記着信割り込みを受信するステップと、目標の実行レベルで動作する割り込み処理ソフトウェアに前記着信割り込みをルーティングするステップであって、前記意図された実行レベルで動作する割り込み処理ソフトウェアに前記着信割り込みをルーティングするために、前記処理回路の前記現在の実行モードに対応する意図された実行モードを有する受信された前記着信割り込みに応答することと、前記意図された実行レベルより特権のある既定の実行レベルで動作する割り込み処理ソフトウェアに前記着信割り込みをルーティングするために、前記処理回路の前記現在の実行モードに対応しない意図された実行モードを有する受信された前記着信割り込みに応答することによって、ルーティングするステップと、を含む方法が提供される。
【００２６】
別の態様によれば、本発明の第２又は第４の態様の前述の方法の１つを実行するように処理装置を制御するためのコンピュータ・プログラムもまた提供され得る。
【図面の簡単な説明】
【００２７】
【図１】ある実施例に従ったデータ処理装置を概略的に示すブロック図である。
【図２】ある実施例に従ったデータ処理装置内の割り込みコントローラの動作を概略的に示す図である。
【図３Ａ】ある実施例に従った２つの動作モード間を切り替える、データ処理装置内の割り込みコントローラの動作を概略的に示す図である。
【図３Ｂ】ある実施例に従った２つの動作モード間を切り替える、データ処理装置内の割り込みコントローラの動作を概略的に示す図である。
【図４】ある実施例に従ったデータ処理装置の動作を示す流れ図である。
【図５】ある実施例に従って着信割り込みを「昇格させる」データ処理装置の動作を示す流れ図である。
【図６】ある実施例に従って着信割り込みに応答して仮想割り込みを生成する、又は生成しない２つの動作モード間を切り替えるデータ処理装置の動作を示す流れ図である。
【図７】ある実施例に従って動作するシステムを概略的に示す図である。
【発明を実施するための形態】
【００２８】
本明細書に記載の実施例は、プロセッサを様々な実行レベル（ＥＬ０〜ＥＬ３）で実行させることができるシステムを考慮している。ＥＬ０は最も特権がない実行レベルであり、ＥＬ３は最も特権がある実行レベルである。高位の実行レベルで動作するソフトウェアは、一般に、低位の実行レベルで使用されるデータにアクセスすることができる。しかしながら、高位の実行レベルで使用されるデータは、一般に、低位の実行レベルで実行されるソフトウェアではアクセスすることができない。
【００２９】
ユーザ・ソフトウェアは実行レベルＥＬ０で実行し、ゲスト・オペレーティング・システムはＥＬ１で実行し、ハイパーバイザ・ソフトウェアは実行レベルＥＬ２で動作し、セキュア・モニタは実行レベルＥＬ３で動作する。
【００３０】
セキュア・モニタは、プロセッサ３０がセキュア・モードで実行するか、非セキュア・モードで実行するかを制御することができる。プロセッサが非セキュア・モードにある間は、セキュア・データにアクセスすることができない。また、この実施例では、実行レベルＥＬ２に対するセキュアな動作モードはなく、且つ実行レベルＥＬ３に対する非セキュアな動作モードがないことに留意すべきである。
【００３１】
実行レベルＥＬ３は、セキュア及び非セキュアの両者のデータにアクセスすることができ、２つの状態間の切り替えを制御する。
【００３２】
着信割り込みは、それらの性質及び目的に応じて、複数のクラスに分類することができる。本明細書に記載の実施例では、３つの異なる分類が考慮される。
【００３３】
Ｇ０又はグループ０割り込みは、ＥＬ３で動作するセキュア・モニタ用である。
【００３４】
Ｇ１ｎｓ又はグループ１非セキュア割り込みは、非セキュア・モードでＥＬ２において動作するハイパーバイザ用、又は非セキュア・モードでＥＬ１において動作するオペレーティング・システム用である。
【００３５】
Ｇ１ｓ又はグループ１セキュア割り込みは、ＥＬ１において動作するセキュア・オペレーティング・システム用である。
【００３６】
着信割り込みは、２つの割り込み例外ＦＩＱ及びＩＲＱの内の１つを発行することによって、割り込みコントローラによりプロセッサに伝達される。
【００３７】
図１は、データ処理装置の実施例を示すブロック図である。着信割り込み１０が割り込みコントローラ２０により受信される。本実施例では、着信割り込み１０は、分類Ｇ０のものであり、プロセッサ３０上で実行レベルＥＬ３で動作するセキュア・モニタ用である。しかしながら、本実施例では、制御レジスタ４０内に格納された値の結果として、着信割り込み１０は、代わりに、プロセッサ３０上で実行レベルＥＬ１で動作する割り込み処理ソフトウェアにルーティングされる。
【００３８】
通常の成り行きでは、プロセッサ３０上で実行レベルＥＬ１で動作する割り込み処理ソフトウェアは、システム・レジスタ５０のセットの内のレジスタの特定のサブセット６０にアクセスできることになる。着信割り込み１０が処理されるためには、異なる、システム・レジスタの第２のセット７０にアクセスすることが必要である。このレジスタの第２のセットは、例えば、確認応答レジスタなどの、特定の例外が保留されている又は完了していることを伝達するために使用されるレジスタを含み得る。したがって、通常は、プロセッサ３０上で実行レベルＥＬ１で動作する割り込み処理ソフトウェアは、着信割り込み１０を処理するために必要であるシステム・レジスタの第２のセット７０にはアクセスできないことになろう。
【００３９】
しかしながら、この実施例では、着信割り込み１０が割り込み処理ソフトウェアにルーティングされる方法は、制御レジスタ４０の構成及びプロセッサ３０の現在の実行モード（セキュア又は非セキュア）の一方又は両方に依存する。
【００４０】
特に、第１のセキュア制御レジスタＳＣＲは、各割り込み例外ＦＩＱ及びＩＲＱに対して、当該割り込み例外がＥＬ３で動作する割り込み処理ソフトウェアにルーティングされるか否かを示す。
【００４１】
割り込み例外がＥＬ３で動作する割り込み処理ソフトウェアにルーティングされず、且つ、プロセッサがセキュア・モードで動作している場合、割り込み例外は、ＥＬ２がセキュア・モードを有していないことから、ＥＬ１でセキュア・モードで動作する割り込み処理ソフトウェアに送られる。
【００４２】
割り込み例外がＥＬ３で動作する割り込み処理ソフトウェアにルーティングされず、且つ、プロセッサが非セキュア・モードで動作している場合、割り込み例外は、第２のハイパーバイザ制御レジスタＨＣＲにより示される値に応じて、ＥＬ１又はＥＬ２で非セキュア・モードで動作する割り込み処理ソフトウェアにルーティングされる。レジスタＳＣＲの場合と同じく、各割り込み例外に対して異なる値を設定することができる。
【００４３】
制御レジスタ４０の構成は、プロセッサ３０上で実行されるソフトウェアにより制御され得る。例えば、ＳＣＲに対して設定される値は、ＥＬ３で動作するセキュア・モニタにより設定することができ、したがって、セキュア・モニタが、特定の割り込み例外の処理を低位の実行レベルで動作する割り込み処理ソフトウェアに委ねることが可能となる。同様に、特定の割り込み例外が、ＥＬ２で動作するハイパーバイザ又はＥＬ１で動作するゲスト・オペレーティング・システムのどちらによって処理されるかは、ハイパーバイザにより指定され得る。したがって、制御レジスタ内の特定の値を設定することで、様々な異なる実行レベルのソフトウェアが着信割り込みを処理することを可能とすることにより、このようなシステムの柔軟性は向上する。
【００４４】
この実例では、レジスタ・アクセス制御８０は、実行レベルＥＬ１でセキュア動作モードで動作する割り込み処理ソフトウェアがシステム・レジスタ５０のセットの内のシステム・レジスタの第２の（付加的）セット７０にアクセスすることを許可する。こうして、実行レベルＥＬ１でセキュア動作モードで動作する割り込み処理ソフトウェアは、着信割り込み１０を処理することができる。
【００４５】
結果として、プロセッサ３０上で実行レベルＥＬ１でセキュア・モードで動作する割り込み処理ソフトウェアに許可されたアクセスは、割り込みコントローラ２０により行われるルーティングに依存し、ルーティングは、制御レジスタ４０の値に依存し得ることが分かる。システム・レジスタ５０へのアクセスの変更が、プロセッサ３０内で実行レベルＥＬ１でセキュア・モードで動作する割り込み処理ソフトウェアが、着信割り込み１０を処理することができるという結果をもたらす。したがって、プロセッサ３０の各実行レベルで動作する割り込み処理ソフトウェアに与えられるアクセス権は動的に決定され、それによって、着信割り込みを複数の異なる実行レベルで処理することが可能となる。言葉を換えれば、特定の実行レベルで動作する割り込み処理ソフトウェアは、システム・レジスタ５０の固定されたセットにアクセスできるだけではない。それどころか、システム・レジスタ５０に対する割り込み処理ソフトウェアのアクセス権は、着信割り込みの異なる実行レベルへのルーティングに応じて変更される。
【００４６】
さらに、プロセッサ３０上で実行レベルＥＬ１でセキュア・モードで動作する割り込み処理ソフトウェアに許可されるアクセス権は調整されるが、任意の他の実行モード又は実行レベルにおける任意の他の割り込み処理ソフトウェアに対するアクセス権が調整される必要はない。具体的には、実行レベルＥＬ２でセキュア・モードで動作する割り込み処理ソフトウェアは、実行レベルＥＬ１で動作する割り込み処理ソフトウェアよりも高い実行レベルで動作するが、実行レベルＥＬ２における割り込みソフトウェアのアクセス権を調整する必要はない。
【００４７】
図２は、データ処理装置が、着信割り込み１０を昇格させる割り込みコントローラ２０を含む実施例を示す。着信割り込み１０は、割り込みコントローラ２０内の入力回路１００により受信され、分類Ｇ１Ｓのものであって、これは、割り込みがセキュアなＥＬ１で動作するセキュア・オペレーティング・システムにより処理されることを意図していることを示す。システム・レジスタ５０のセット内の確認応答レジスタ９０は、着信割り込み１０が保留されていること、また（本実施例では）プロセッサ３０の現在の実行モードが、着信割り込み１０により要求されたモードに合致しないことを示す。この実例では、着信割り込み１０は、非セキュアな動作モードにあるプロセッサ３０とは相容れない、セキュアな動作モードを要求している。着信割り込み１０が正しい動作モードにないという事実が、割り込みコントローラ２０に利用可能となる。
【００４８】
確認応答レジスタが割り込み処理ソフトウェアから読み込まれ、返される値は、現在の状況に対して有効な割り込みＩＤであるか、又はセキュア状態のための保留中の割り込みがある、非セキュア状態のための保留中の割り込みがある、若しくは何らの保留中の割り込みもない、のいずれかを示す値の１つである特別な識別子である。もはや保留中の割り込みがないという応答は、プロセッサが、保留中の割り込みを取得する若しくは実際に見るために十分に高いレベルで実行されていない場合、又は、保留中の割り込みが取得されてしまって何らかの理由でもはや保留中ではない場合に発生する可能性がある。
【００４９】
通常、割り込みコントローラ２０への着信割り込み１０の到着は、実行レベルＥＬ１でセキュアな動作モードで動作する割り込み処理ソフトウェアへ送られることになる割り込み例外ＩＲＱを発生させる。しかしながら、この実例では、プロセッサ３０が、現在、セキュアな動作モードで動作していないことから、この割り込み例外は、この時点で処理されることはできない。したがって、割り込みコントローラ２０内のルーティング回路１１０は割り込み例外ＦＩＱを発生させることにより着信割り込み１０を「昇格」させ、プロセッサ３０上で実行レベルＥＬ３でセキュアな動作モードで動作する割り込み処理ソフトウェアにルーティングされる。
【００５０】
本実施例では、実行レベルＥＬ３でセキュア・モードで動作する割り込み処理ソフトウェアは、常に、内部ＦＩＱ割り込みに即応することが可能である。したがって、着信割り込み１０が意図したものよりも特権のある実行レベルにおける割り込み処理ソフトウェアは、プロセッサの現在の動作モードと相容れない着信割り込み１０を受信した割り込みコントローラ２０に対して反応することができる。
【００５１】
いくつかの実施例では、実行レベルＥＬ３で動作する割り込み処理ソフトウェアは、セキュア動作モードで実行している任意のソフトウェアの状態を保存し、あるキャッシュ又は中間記憶媒体をフラッシュし、プロセッサのモードを切り替えることで、プロセッサ３０のモードを変更することにより反応することになる。このプロセスは、単純な割り込みを処理する場合、時間がかかり得る。したがって、状況によっては、実行レベルＥＬ３で動作する割り込み処理ソフトウェアは、その代わりに、着信割り込みをそれ自身で処理する可能性がある。このような状況では、割り込み処理ソフトウェアは、セキュア・モードと非セキュア・モードとの間でプロセッサ３０のモードを変更する必要がない。
【００５２】
当業者は、実行レベルＥＬ３で動作する割り込み処理ソフトウェアが、プロセッサ３０のモードをセキュア及び非セキュア・モードの間で変更させるか否か、又は、実行レベルＥＬ３で動作する割り込み処理ソフトウェアが割り込みをそれ自身で処理するか否か、を指示することになる複数の異なる条件があることを認識するであろう。例えば、着信割り込みの重要性、プロセッサ上で現在動作中の実行レベル、又は、着信割り込みの複雑さに基づいて、このような決定が行われ得る。特に、プロセッサがこれまで低い実行レベルで動作していた場合、着信割り込みがとりわけ複雑であり、且つ決定的に重要というわけではない場合、プロセッサ３０は、セキュア及び非セキュア・モードの間でモードを変更する可能性がある。
【００５３】
図３Ａ及び図３Ｂは、図３Ａに示される第１の設定と図３Ｂに示される第２の設定との間で割り込みコントローラのモードを切り替えるプロセスを示す。
【００５４】
図３Ａにおいて、着信割り込み１０は、割り込みコントローラ２０により受信され、割り込み例外ＩＲＱとしてプロセッサ３０上で実行レベルＥＬ１で非セキュア・モードで動作する割り込み処理ソフトウェアに転送される。
【００５５】
図３Ｂにおいて、着信割り込み１０は、割り込みコントローラ２０により受信され、この場合も割り込み例外ＩＲＱとして転送される。しかしながら、この実施例では、割り込み例外ＩＲＱは、実行レベルＥＬ２で非セキュア・モードで動作する割り込み処理ソフトウェアにより受信される。そこで、仮想割り込みが、実行レベルＥＬ２で非セキュア・モードで動作する割り込み処理ソフトウェアにより生成され、実行レベルＥＬ１で非セキュア・モードで動作する割り込み処理ソフトウェアに転送される。この実施例では、生成される仮想割り込みは、この実施例にはセキュアなＥＬ２がないため、当然のこととして、ハイパーバイザ又はゲストＯＳのいずれかに行くグループ１非セキュア割り込みでなければならない。
【００５６】
２つの設定により、実行レベルＥＬ１で非セキュア・モードで動作する割り込み処理ソフトウェアが、着信割り込み１０に物理的にアクセスするか、又は、より特権がある実行レベルＥＬ２で非セキュア・モードで動作する割り込み処理ソフトウェアが着信割り込み１０に物理的にアクセスし、実行レベルＥＬ１で非セキュア・モードで動作する割り込み処理ソフトウェアは着信割り込み１０に仮想的にのみアクセスするか、とすることが可能となる。
【００５７】
例えば、あるハードウェアにより生成される着信割り込み１０は、実行レベルＥＬ１で動作するゲスト・オペレーティング・システムにより直接処理され得て、この場合、ゲスト・オペレーティング・システムは、中間的なステップを要求せずに、着信割り込み１０に物理的にアクセスする。
【００５８】
或いは、このような割り込みは、実行レベルＥＬ２で動作するハイパーバイザ・ソフトウェアに向かわせて、仮想割り込みが、ハイパーバイザ・ソフトウェアにより生成され、実行レベルＥＬ１で動作するゲスト・オペレーティング・システムにルーティングされることになる。この場合、ゲスト・オペレーティング・システムは、着信割り込み１０へ仮想的にのみアクセスでき、この割り込みへのアクセスは、最終的には、実行レベルＥＬ２で動作するハイパーバイザ・ソフトウェアにより制御される。このプロセスは、異なる個々のソフトウェアが、ハードウェアにアクセスしようと競い合う、又は、ハードウェアに直接アクセスさせるほど信頼されていない場合に必要となり得る。しかしながら、仮想割り込みを発生させるプロセスは、ゲスト・オペレーティング・システムが着信割り込み１０に物理的にアクセスするシナリオに比べて、追加の処理リソースを消費する可能性がある。
【００５９】
割り込みコントローラ２０は、制御レジスタ４０のセット内のレジスタにより返される値に従って、これらの２つの設定間で切り替えられ得る。これまでに論じたように、プロセッサ３０が、非セキュアな動作モードで動作しており、且つ、割り込み例外が、ＥＬ３へルーティングされない場合、レジスタＨＣＲの値は、割り込み例外がＥＬ１又はＥＬ２のいずれにルーティングされるべきであるか示すために使用され得る。さらに、このレジスタは、割り込み例外を受信する割り込み処理ソフトウェアが、仮想割り込みを生成し、その仮想割り込みを実行レベルＥＬ１で非セキュアなモードで動作する割り込み処理ソフトウェアに転送すべきか否かを示す。より特権の少ない実行レベルで動作するソフトウェアにより処理するために仮想割り込みを発生させることは、プロセッサへの負荷が大きいであろう。より低位のレベルで動作する割り込み処理ソフトウェアによって最終的に処理される割り込みは、より特権のある割り込み処理ソフトウェアによって仮想割り込みの形で再現されなければならない。しかしながら、仮想割り込みを生成することにより、より特権のない割り込みハンドラーが、より特権のない実行レベルで動作するソフトウェアの特権を拡大することなく割り込みを処理することが可能となる。したがって、ハイパーバイザは、ＥＬ１レベルで実行されている特定のソフトウェアとともに変化するセキュリティ対性能の要件に合わせて、制御レジスタ４０に値を設定する。
【００６０】
以下の表は、割り込み例外ＩＲＱについて、異なるレジスタ値及びプロセッサ・モードの、着信割り込みのルーティングへの効果を示す。
【００６１】
【表１】
0006753777.tif 000002
【００６２】
セキュア制御レジスタＳＣＲ及びハイパーバイザ制御レジスタＨＣＲの両者が、ＩＲＱのルーティングを制御する上記に示したビットとＦＩＱのルーティングを制御する（この表には示されない）別のビットとを含むことに留意すべきである。ＦＩＱ割り込みであるＳＣＲ．ＦＩＱ又はＨＣＲ．ＦＩＱのための制御ビットはグループ０の割り込みのためのルーティングを制御し、ＩＲＱ割り込みであるＳＣＲ．ＩＲＱ又はＨＣＲ．ＩＲＱのためのそれは、グループ１のセキュア及び非セキュアの両方の割り込みをどのようにルーティングするかを定義する。このセグメント化は、ＩＲＱが、要求された場合、ＦＩＱに昇格することができるので可能である。既に述べたように、これらの設定は、ＩＲＱ及びＦＩＱの両方の割り込み例外に対して独立に設定することができる。
【００６３】
したがって、２つのモード間を動的に切り替えることが可能であり、それによって、着信割り込み１０が中間の当事者により処理されるか、又は正しい実行レベルで動作する適切なソフトウェアに直接ルーティングされるかに動的に影響を与えることが可能である。
【００６４】
図４は、ある実施例に従ったデータ処理装置の動作を示す流れ図である。
【００６５】
ステップＳ１０において、（図１又は図２に示されるように）着信割り込み１０がどの実行レベルにルーティングされるべきかが決定される。このような決定は、制御レジスタ４０のセット内のレジスタによって返される値と着信割り込み１０の種類との組み合わせにより行うことができる。
【００６６】
ステップＳ２０において、割り込み処理ソフトウェアが着信割り込み１０を処理できるように、着信割り込み１０がルーティングされるべき実行レベルで動作する割り込み処理ソフトウェアに対してアクセスが動的に認められる。
【００６７】
上記に従って、割り込み処理ソフトウェアに認められるアクセス権は、静的に決定されるのではない。すなわち、各実行レベルで動作する割り込み処理ソフトウェアは、システム・レジスタ５０のセット中の、レジスタの、固定された、すなわち静的なセットへのアクセスを有するものではない。その代わりに、割り込み処理ソフトウェアがアクセスを有する、システム・レジスタ５０内のレジスタのセットは、着信割り込みのルーティングに基づいて決定される。
【００６８】
図５は、ある実施例に従って（図１に示されるように）着信割り込み１０を昇格させるデータ処理装置の動作を示す流れ図である。
【００６９】
ステップＳ３０において、着信割り込み１０が、割り込みコントローラ２０により受信される。
【００７０】
ステップＳ４０において、プロセッサ３０に対する現在の実行モードが判定される。
【００７１】
ステップＳ５０において、プロセッサ３０の現在の実行モードが、着信割り込み１０の意図された実行モードと同じであるかが判定される。この判定は、例えば、システム・レジスタ５０内の確認応答レジスタ９０の読み込みの結果としてなされ得る。
【００７２】
現在の実行モードと意図された実行モードとが同じである場合、動作は、着信割り込み１０が意図された割り込みハンドラーに転送される、ステップＳ６０に進む。
【００７３】
或いは、意図された実行モードと現在の実行モードとが異なる場合、着信割り込み１０は、実行レベルＥＬ３で動作する割り込み処理ソフトウェアにルーティングされる。
【００７４】
実行レベルＥＬ３で動作する割り込み処理ソフトウェアは、例えば、セキュア・モニタであり得る。この実施例では、実行レベルＥＬ３で動作するセキュア・モニタは、割り込みをそれ自身で直接、処理する。しかしながら、他の実施例では、セキュア・モニタは、プロセッサ３０に対する現在の実行モードを切り替えさせる可能性がある。例えば、プロセッサ３０の実行モードが着信割り込み１０の意図された実行モードに合致するように、プロセッサ３０の実行モードがセキュア・モードから非セキュア・モードへ、又はその逆に、切り替えられ得る。
【００７５】
したがって、プロセッサ３０が現在提供している実行モードを要求する着信割り込み１０は、適切な割り込み処理ソフトウェアに直ちに転送され得る。しかしながら、プロセッサ３０が適切な実行モードで動作していない場合、着信割り込みを最も特権のある実行レベルにルーティングさせる、「昇格」が発生する。ここで、着信割り込み１０は、直ちに処理されるか、又は、着信割り込み１０が当初意図された割り込み処理ソフトウェアに転送され得るようにプロセッサのモードを切り替えることができる。
【００７６】
図６は、ある実施例に従って仮想割り込みを発生させるデータ処理装置の動作を示す流れ図である。
【００７７】
ステップＳ８０において、割り込みコントローラ２０が動作の転送モードにあるか否かを判定する。動作の転送モードにおいて、割り込みコントローラ２０は、（図１及び図２に示すように）着信割り込み１０を適切な実行レベルに直接、転送し、それによって、適切な実行レベルの割り込み処理ソフトウェアに着信割り込み１０への物理的なアクセスを許可するように構成される。動作のモードは、例えば、制御レジスタ４０のセット内の確認応答レジスタ９０により返却される値の結果によって、決定され得る。
【００７８】
割り込みコントローラ２０が動作の転送モードにある場合、ステップＳ９０において、着信割り込み１０は、実行レベルＥＬ１で非セキュアな動作モードで動作する処理ソフトウェアに直接ルーティングされる。
【００７９】
或いは、割り込みコントローラ２０が動作の転送モードにない場合、ステップＳ１００において、着信割り込みは、実行レベルＥＬ２で非セキュアな動作モードで動作する割り込み処理ソフトウェアに向けてルーティングされる。その後、ステップＳ１１０において、仮想割り込みが、非セキュアの実行レベルＥＬ２で動作するソフトウェアにより生成され、非セキュアの実行レベルＥＬ１で動作する割り込み処理ソフトウェアに転送される。
【００８０】
上記によれば、着信割り込み１０が特定の実行レベルで動作する割り込み処理ソフトウェアに向けて直接転送される第１の設定と、着信割り込み１０がより特権のある実行レベルに転送され、仮想割り込みが当該のより特権のある実行レベルの割り込み処理ソフトウェアにより生成されて、より特権のないレベルで動作する割り込み処理ソフトウェアに送信される第２の設定との間で、割り込みコントローラ２０の動作のモードを切り替えることができる。このようにして、割り込み処理ソフトウェアが、着信割り込み１０への物理的なアクセスを有することも、その着信割り込みへの仮想的なアクセスを有することも可能である。
【００８１】
図７は、着信割り込みが生成され、ルーティング回路１１０に送信される例示的実施例を概略的に示す。そこでは、着信割り込みが、割り込み例外ＦＩＱ／ＩＲＱを必要に応じて生成するのに使用される。これらの割り込み例外は、プロセッサ３０に送信される。特に、割り込み例外は、割り込み例外の性質に応じて、実行モード（セキュア又は非セキュア）の１つで実行レベルの１つにおいて動作する割り込み処理ソフトウェアに送信される。
【００８２】
図７は、ＩＲＱ及びＦＩＱ割り込み例外に対するレジスタＳＣＲにより示される値に応じて、且つ、ＳＣＲ＿ＮＳが１である場合は非セキュア・モードにあり、ＳＣＲ＿ＮＳが０である場合はセキュア・モードにあると表現される、プロセッサ３０の現在の動作状態に応じて、異なる分類の割り込みが、異なる例外レベルで動作する異なる割り込み処理ソフトウェアに送信されることを示す。この点に関し、セキュア制御レジスタＳＣＲは、ＦＩＱ割り込みを制御するためのビットＳＣＲ．ＦＩＱ、ＩＲＱ割り込みを制御するためのビットＳＣＲ．ＩＲＱ、及び、セキュア又は非セキュアのモードであるプロセッサの現在のモードを示すビットＳＣＲ．ＮＳを格納する。
【００８３】
特に、この実例では、ＳＣＲ．ＦＩＱがＦＩＱ割り込み例外に対して１に設定されることから、ＦＩＱ割り込み例外を生成するＧ０割り込みはＥＬ３にルーティングされる。
【００８４】
さらに、ＳＣＲ．ＩＲＱはＩＲＱに対して０であり、且つ、プロセッサが現在、非セキュア動作モード（ＳＣＲ．ＮＳ＝１）にあることから、Ｇ１ｓ割り込みは、「昇格」されて、ＦＩＱ割り込みを発生させて、ＥＬ３へ送信させる。逆に、Ｇ１ｎｓ割り込みは、プロセッサが要求されたモード（すなわち、非セキュア）で動作していることから、実行レベルＥＬ２で動作する割り込み処理ソフトウェアにＩＲＱ割り込みを送信させる。
【００８５】
本発明の例示的実施例を添付の図面を参照して本明細書で詳細に説明してきたが、本発明が、これらの正確な実施例に限定されるものではなく、様々な変更及び修正が、添付の特許請求の範囲により規定される本発明の範囲及び趣旨を逸脱することなく当業者により達成され得ることを理解されたい。
【図１】
0006753777.tif 000003
【図２】
0006753777.tif 000004
【図３Ａ】
0006753777.tif 000005
【図３Ｂ】
0006753777.tif 000006
【図４】
0006753777.tif 000007
【図５】
0006753777.tif 000008
【図６】
0006753777.tif 000009
【図７】
0006753777.tif 000010