JP5234794B2 - データ処理装置および処理回路上で実行される仮想機械によるセキュア・メモリへのアクセス制御方法 - Google Patents

データ処理装置および処理回路上で実行される仮想機械によるセキュア・メモリへのアクセス制御方法 Download PDF

Info

Publication number
JP5234794B2
JP5234794B2 JP2009045231A JP2009045231A JP5234794B2 JP 5234794 B2 JP5234794 B2 JP 5234794B2 JP 2009045231 A JP2009045231 A JP 2009045231A JP 2009045231 A JP2009045231 A JP 2009045231A JP 5234794 B2 JP5234794 B2 JP 5234794B2
Authority
JP
Japan
Prior art keywords
secure
address
virtual machine
stage
access request
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
JP2009045231A
Other languages
English (en)
Other versions
JP2009211698A (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 JP2009211698A publication Critical patent/JP2009211698A/ja
Application granted granted Critical
Publication of JP5234794B2 publication Critical patent/JP5234794B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、データ処理装置およびデータ処理装置の処理回路上で実行される仮想機械によるセキュア(secure)・メモリへのアクセスを制御するための方法に関する。
一般的な仮想化環境では、プロセッサ・コアなどの処理デバイスは、その処理デバイス上での複数の仮想機械の実行をサポートするハイパーバイザ・ソフトウエアを実行するようにアレンジされる。各仮想機械は、一般に特定のオペレーティング・システム上で走る1又は複数のアプリケーションを有し、ハイパーバイザ・ソフトウエアは、仮想機械をサポートする適切なハードウエアを提供する下層ハードウエアと仮想機械との間のインタフェース層として働く。各仮想機械は、ハイパーバイザ・ソフトウエア層を介して、それが駐在するシステムについて独自の視点(view)を得ることができ、従ってシステムの利用可能リソースについても独自の視点を得ることができる。各仮想機械は、システム上の他の仮想機械から独立して動作し、実際、他の仮想機械の存在について気づく必要もない。
従って、例示システムのなかで、1つの仮想機械は、特定のオペレーティング・システム、例えばMicrosoft Windows(登録商標)を走らせるように実行され、他方、別の仮想機械は、別のオペレーティング・システム、例えばLinux(登録商標)を走らせるように実行される。
仮想化技術を使用する、しないに関わらず、1つのアプリケーションに付随するデータが、データ処理装置のデバイス上で走る別のアプリケーションによってアクセスされるべきでない機密データである例が多く存在する。そのような状況で、そのような機密データを安全な状態に保ち、データ処理装置上にロードされた別のアプリケーション、例えば、その機密データにアクセスしようとしてデータ処理装置にロードされた不法侵入アプリケーションによってアクセスできないように保証することが重要であることは、明らかである。
1つのアプリケーションの機密データがそのオペレーティング・システムの制御下で走る別のアプリケーションによってアクセスできないことを保証するのに十分な安全性をオペレーティング・システムが提供できるという保証は、伝統的にオペレーティング・システムの開発者の仕事であった。しかし、システムがより複雑になるにつれて、オペレーティング・システムがより大規模化および複雑化するのが一般的な傾向であり、そのような状況では、オペレーティング・システム自身の内部で十分な安全性を保証することは、ますます困難になっている。オペレーティング・システムの安全性に頼ることを和らげる目的で、データ処理装置を明瞭に分かれた2つのドメイン又はワールドに分割し、それぞれのドメインがハードウエア・レベルで安全性を管理する機構を提供するシステムが知られている。そのようなシステムについては、例えば、その内容を参照によってここに取り込む、共通に譲渡された同時係属の米国特許出願第10/714,561号に述べられている。この出願は、セキュア・ドメインとノン・セキュア・ドメインとを有するシステムについて述べている。このシステムで、ノン・セキュア・ドメインおよびセキュア・ドメインは、事実上別々のワールドを設定し、セキュア・ドメインは、ハードウエアで強化された境界によって他の実行空間から分離されたトラステッド(trusted,信用ある)実行空間を提供し、同様に、ノン・セキュア・ドメインは、ノン・トラステッド実行空間を提供している。
このようなセキュア・システムでは、メモリ・システムもセキュア・メモリとノン・セキュア・メモリとに分割されるのが一般的である。ノン・セキュア・ドメインで動作するどんなアプリケーションも、セキュア・メモリにアクセスできない。しかし、セキュア・ドメインにあれば、セキュア・メモリとノン・セキュア・メモリの両方にアクセスできるのが普通である。
米国特許出願第10/714,561号明細書 米国特許第7,171,539号明細書
先に述べた仮想化技術を採用したデータ処理装置に対してこのようなハードウエアをベースとする安全対策を組み込もうとする場合、処理回路は、ノン・セキュア・ドメインにおいて複数のノン・セキュア仮想機械を実行するようにアレンジされ、それぞれのノン・セキュア仮想機械がノン・セキュア・メモリ・アドレス空間についてのそれ自身の独自の視点を得ることができるようにされる。これに従い、処理回路は、ハイパーバイザ・ソフトウエアを実行するためにセキュア・ドメインに入ることができ、実際に、必要であればセキュア・ドメイン内のセキュア・オペレーティング・システムの制御下で1又は複数のセキュア・アプリケーションを実行できる。ハイパーバイザは、メモリ・システムにアクセスするための物理アドレスを発生させるために利用されるアドレス変換機構を制御することによって、複数のノン・セキュア仮想機械の分離を維持できる。これは、セキュア・ドメインから管理されるので、ノン・セキュア仮想機械は、このアドレス変換機構を修正できない。
また複数の仮想機械を提供するためにも、セキュア・ドメインの特権レベルよりも上位となる付加的特権レベルにおいてハイパーバイザが動作するようなシステムを実現して、各種のセキュア仮想機械に対するアドレス変換機構に対して、ノン・セキュア仮想機械のために使用されるのと同レベルの制御をハイパーバイザが行使できるようにする必要がある。しかし、このようなやり方は、セキュア・ドメインおよびノン・セキュア・ドメインをサポートするために既に設けられているものよりも上位の付加的な特権レベルを必要とし、レベルが更に複雑化することから、多くの実施の場で許容できないと考えられている。
しかし、上述のようにシステムを修正することなしに、複数のセキュア・オペレーティング・システムを仮想化すること、すなわち、セキュア・ドメインで複数の仮想機械を走らせることはできない。特に、セキュア・ドメインでは、ハイパーバイザ・ソフトウエアとセキュア・ドメインで実行される任意のその他のソフトウエアとの間に特権レベルの違いがないので、複数のセキュア仮想機械を確立できれば、ハイパーバイザ・ソフトウエアによって導入されたアドレス変換機構を1つのセキュア仮想機械が修正でき、そのプロセスによって、他の仮想機械の1つのセキュア・データへのアクセスを得ることができる。
従って、ハイパーバイザに対して付加的な特権レベルが与えられていないシステムで、任意の仮想機械は、ノン・セキュア・ドメインで実行するようにアレンジされなければならないが、結果としてセキュア・メモリへのアクセスはできない。
従って、ハイパーバイザ・ソフトウエアに対して付加的特権レベルを必要とせずに、ハイパーバイザ・ソフトウエアの制御下でセキュア・メモリにアクセス可能な複数の仮想機械を実行できる機構を提供することが望ましい。
第1の態様から見ると、本発明は、データ処理装置を提供し、それは、処理回路上での複数の仮想機械の実行をサポートするハイパーバイザ・ソフトウエアを実行する処理回路、処理回路によるアクセスのためのデータを記憶するメモリ・システムであって、セキュア・データを記憶するセキュア・メモリとノン・セキュア・データを記憶するノン・セキュア・メモリとを含み、セキュア・メモリがセキュア・アクセス要求によってのみアクセスできるメモリ・システム、処理回路上で実行される現行の(current)仮想機械によって発行された仮想アドレスを指定するアクセス要求に応答して、現行の仮想機械によってアクセスしようとするデータを含む前記メモリ中の物理アドレスを識別するためにアドレス変換プロセスを実行し、またメモリ・システムに対して、物理アドレスを指定する修正されたアクセス要求を発行させるアドレス変換回路およびハイパーバイザ・ソフトウエアによって管理されるトラステッド仮想機械識別子を記憶する記憶装置であって、ハイパーバイザ・ソフトウエアは、現行の仮想機械がセキュア・メモリへのアクセスに関して信頼されたものである場合に、トラステッド仮想機械識別子をセットするようにアレンジされた記憶装置を含み、アドレス変換回路は、トラステッド仮想機械識別子がセットされている場合にのみ、現行の仮想機械によって発行されたアクセス要求に応答して、修正されたアクセス要求として、セキュア・メモリ内の物理アドレスを指定する前記セキュア・アクセス要求を発行させることができる。
本発明に従えば、ハイパーバイザ・ソフトウエアによって管理されるトラステッド仮想機械識別子を記憶する記憶装置が設けられ、ハイパーバイザ・ソフトウエアは、処理回路上で実行される現行の仮想機械に依存して、トラステッド仮想機械識別子をセットし、現行の仮想機械が信頼されるか否かを区別する。次にアドレス変換回路は、アドレス変換プロセスを実行するときにトラステッド仮想機械識別子を参照して、トラステッド仮想機械識別子がセットされている場合にのみ、アクセス要求をセキュア・メモリ内の物理アドレスを指定するようにアドレス変換プロセスによって修正させることができる。
このように、本発明は、そのうちの少なくともいくつかがセキュア・メモリにアクセスできる複数の仮想機械をハイパーバイザ・ソフトウエアがサポートできるようにする。このことから、本発明は、同じ処理回路上に複数のトラステッド仮想機械が同時に存在することを許容する。
ハイパーバイザ・ソフトウエアは、一般にアドレス変換回路によって実行されるアドレス変換プロセスを制御するようにアレンジされており、従って、そのようなトラステッド仮想機械の各々をセキュア・メモリ空間のサブセットに制限することができ、それによって複数のトラステッド仮想機械の分離を確保する。
このことから、セキュア・ドメインとノン・セキュア・ドメインとを有するシステムの前述の例について考えると、すべての仮想機械をノン・セキュア・ドメインで実行できるが、セキュア・ドメイン上で実行されるハイパーバイザ・ソフトウエアによって管理されるトラステッド仮想機械識別子を利用することによって、それらの仮想機械の特定のものがトラステッド仮想機械として認識され、それらがアドレス変換回路によってセキュア・メモリ・アドレス空間にマッピングされうるアクセス要求を発行することを許容される。
アドレス変換回路は、多様な形にアレンジできる。しかし、1つの実施の形態で、アドレス変換回路は、第1ステージのページ・テーブルに依存した仮想アドレスから中間アドレスへの変換を実行し、更に第2ステージのページ・テーブルに依存した中間アドレスから物理アドレスへの変換を実行することによってアドレス変換を実行するようにアレンジされる。少なくとも第2ステージのページ・テーブルは、ハイパーバイザ・ソフトウエアによって管理される。ハイパーバイザ・ソフトウエアが第2ステージのページ・テーブルを管理することを確実にすることで、ハイパーバイザ・ソフトウエアは、処理回路上で実行される各種仮想機械の分離を確保できる。1つの実施の形態で、第2ステージのページ・テーブルが各仮想機械について設けられる。同様に、第1ステージのページ・テーブルを仮想機械毎に指定することができ、実際にいくつかの実施の形態では、1つの特定の仮想機械内で走っている異なるアプリケーション毎に別々の第1ステージのページ・テーブルが設けられる。
第1ステージのページ・テーブルは、多様な形で管理できるが、1つの実施の形態で、第1ステージのページ・テーブルは、現行の仮想機械によって管理される。従って、現在実行中の仮想機械が、それ自身が所有する第1ステージのページ・テーブル(単数又は複数)を制御できるので、仮想アドレスをどのように中間アドレスにマッピングするかを管理できるが、ハイパーバイザ・ソフトウエアは、第2のページ・テーブルに依存した中間アドレスから物理アドレスへの変換を管理することによって、各仮想機械が物理メモリについての独自の視点を与えられることが保証される。
トラステッド仮想機械識別子を考慮するようにアドレス変換プロセスをアレンジする多くのやり方が存在する。1つの実施の形態で、データ処理装置は、更に第1ステージのページ・テーブルと第2ステージのページ・テーブルとを識別するページ・テーブル識別子記憶装置を含み、トラステッド仮想機械識別子がセットされている場合、ページ・テーブル識別子記憶装置は、ノン・セキュアな第2ステージのページ・テーブルとセキュアな第2ステージのページ・テーブルとを識別するようにアレンジされる。現行の仮想機械によって発行されたアクセス要求に応答してアドレス変換を実行するとき、アドレス変換回路は、指定された仮想アドレスを使用して、対応する中間アドレスを生成するために必要な情報を提供する第1ステージのページ・テーブルの記述子にアクセスする。記述子は、更に第1ステージのセキュリティ値(security value)も提供する。トラステッド仮想機械識別子がセットされている場合、中間アドレスから物理アドレスへの変換を実行するときに、第1ステージのセキュリティ値を使用して、ノン・セキュアな第2ステージのページ・テーブルとセキュアな第2ステージのページ・テーブルのいずれを使用するかが決定される。1つの実施の形態で、ノン・セキュアな第2ステージのページ・テーブルは、中間アドレスがノン・セキュア・メモリ内の物理アドレスにマッピングされることだけを許容し、他方、セキュアな第2ステージのページ・テーブルは、特定の条件下で中間アドレスがセキュア・メモリ内の物理アドレスにマッピングされることを付加的に許容する。
そのような実施の形態では、トラステッド仮想機械識別子がセットされて現行の仮想機械が信頼できる仮想機械として識別されていれば、第1ステージのページ・テーブルの関連する記述子から得られた第1ステージのセキュリティ値を使用して、中間アドレスから物理アドレスへの変換を実行するときにノン・セキュアな第2ステージのページ・テーブルとセキュアな第2ステージのページ・テーブルのいずれを使用するかが決定される。このように、現行の仮想機械は、それによる第1ステージのページ・テーブルの管理を通して、それが特定のアクセスをノン・セキュア・アクセス又はセキュア・アクセスのいずれとして取り扱われることを望むかを識別することができる。第1ステージのセキュリティ値によってアクセスがノン・セキュアであるとマークされた場合、ノン・セキュアな第2ステージのページ・テーブルを使用してアドレス変換の第2ステージが実行される。しかし、アクセスがセキュアであるとマークされ、トラステッド仮想機械識別子がセットされている場合は、セキュアな第2ステージのページ・テーブルを使用してアドレス変換の第2ステージが実行される。
注意すべきことは、第2ステージのページ・テーブルを、セキュア・メモリ(ハイパーバイザ・ソフトウエアがセキュア・メモリへのアクセスを有するので)又はノン・セキュア・メモリのいずれかに置くことができるということである。ハイパーバイザ・ソフトウエアがアドレス変換の第2ステージを管理するので、これらの第2ステージのページ・テーブルがノン・セキュア・メモリに置かれた場合でも、ハイパーバイザは、それらが仮想機械の任意のものによってアクセスできないことを保証できる。しかし、第2ステージのページ・テーブルをセキュア・メモリに置くほうが本質的により安全である。これは、そうすれば、1又は複数の仮想機械からそれらのテーブルへのアクセスを原理的に許容するマッピングのエントリにおいてエラーが発生したとしても、セキュア・メモリがセキュリティ状態にあれば、そのようなアクセスを防止できるからである。それにも拘わらず、セキュア・メモリは、しばしば比較的限られたリソースであるため、実際には、それらのページ・テーブルの場所の選択は、セキュリティの向上とスペースとの間のトレード・オフになる。
1つの実施の形態で、トラステッド仮想機械識別子がセットされていない場合、中間アドレスから物理アドレスへの変換を実行するとき、第1ステージのセキュリティ値に関わらず、ノン・セキュアな第2ステージのページ・テーブルが使用され、アドレス変換回路は、修正されたアクセス要求として、ノン・セキュア・メモリ内の物理アドレスを指定するノン・セキュア・アクセス要求を発行させる。従って、トラステッド仮想機械識別子がセットされていなければ、第1ステージのセキュリティ値は、無視され、従って、セキュア・メモリへのいかなるアクセス機構もノン・トラステッド仮想機械へ提供されないことが保証される。
1つの実施の形態で、中間アドレスから物理アドレスへの変換を実行するときにセキュアな第2ステージのページ・テーブルが使用されると、アドレス変換回路は、生成された中間アドレスを使用して、対応する物理アドレスを生成するために必要な情報を提供するセキュアな第2ステージのページ・テーブルの記述子にアクセスする。記述子は、更に第2ステージのセキュリティ値も提供する。次に、第2ステージのセキュリティ値を使用して、対応する物理アドレスとして、セキュア・メモリ内の物理アドレスとノン・セキュア・メモリ内の物理アドレスのいずれをアドレス変換回路が発生させるかが決定される。このように、アドレス変換回路は、トラステッド仮想機械識別子がセットされていれば、修正されたアクセス要求として、セキュア・メモリ内の物理アドレスを指定する前記セキュア・アクセス要求を発行させ、第1ステージのセキュリティ値は、中間アドレスから物理アドレスへの変換を実行するとき、セキュアな第2ステージのページ・テーブルが使用されるようにし、また第2ステージのセキュリティ値は、対応する物理アドレスとして、セキュア・メモリ内の物理アドレスをアドレス変換回路に発生させるようにする。
このやり方によれば、第1ステージのセキュリティ値と第2ステージのセキュリティ値が両方ともそのアクセスがセキュア・メモリへのものであることを示し、トラステッド仮想機械識別子がハイパーバイザ・ソフトウエアによってセットされている場合にのみ、実際にセキュア・メモリに対してアクセスが発生することが許容される。第1ステージのセキュリティ値又は第2ステージのセキュリティ値のいずれかがアクセスをノン・セキュアであるとマークした場合、そのアクセスは、代わりにノン・セキュアな物理アドレス空間のアドレスにマッピングされる。
上で述べた実施の形態では、ノン・セキュアな第2ステージのページ・テーブルおよびセキュアな第2ステージのページ・テーブルが使用されたが、代替の実施の形態は、2つの分離した第2ステージのページ・テーブルを必要としない。実際、1つの実施の形態で、現行の仮想機械によって発行されたアクセス要求に応答してアドレス変換を実行するとき、アドレス変換回路は、指定された仮想アドレスを使用して、対応する中間アドレスを生成するために必要な情報を提供する第1ステージのページ・テーブルの記述子にアクセスする。記述子は、更に、第1ステージのセキュリティ値も提供しており、アドレス変換回路は、更に生成された中間アドレスを使用して、対応する物理アドレスを生成するために必要な情報を提供する第2ステージのページ・テーブルの記述子にアクセスする。記述子は、更に第2ステージのセキュリティ値も提供する。トラステッド仮想機械識別子がセットされていれば、アドレス変換回路は、第1ステージのセキュリティ値と第2ステージのセキュリティ値の両方がアクセスをセキュアであると識別している場合、修正されたアクセス要求としてセキュア・メモリ内の物理アドレスを指定する前記セキュア・アクセス要求を発行させる。
この実施の形態に従えば、第1ステージのセキュリティ値は、異なる第2ステージのページ・テーブル間で選択を行うために使用されず、その代わり、第2ステージのページ・テーブルから読み出された第2ステージのセキュリティ値と組み合わせて、アクセスがセキュア・メモリに進むべきか否かを判断するために使用される。特に、第1ステージのセキュリティ値と第2ステージのセキュリティ値が両方ともそのアクセスをセキュアであると識別していて、トラステッド仮想機械識別子がハイパーバイザ・ソフトウエアによってセットされている場合にのみ、アドレス変換回路は、セキュア・メモリ内の物理アドレスを指定するセキュア・アクセス要求を出力する。
1つの実施の形態で、トラステッド仮想機械識別子がセットされている場合、アドレス変換回路は、第1ステージのセキュリティ値と第2ステージのセキュリティ値が両方ともにアクセスをノン・セキュアであると識別しているとき、修正されたアクセス要求として、ノン・セキュア・メモリ内の物理アドレスを指定するノン・セキュア・アクセス要求を発行させる。
更に、1つの実施の形態で、トラステッド仮想機械識別子がセットされている場合、アドレス変換回路は、第1ステージのセキュリティ値と第2ステージのセキュリティ値が異なる場合、アクセス要求を中止させる。
代替的実施の形態では、アドレス変換回路は、第1ステージのセキュリティ値がそのアクセスをセキュアであるとマークするが、第2ステージのセキュリティ値がそのアクセスをノン・セキュアであるとマークする場合、アクセス要求をノン・セキュア・メモリに向けるようにアレンジできる。この代替的実施の形態では、第2ステージのマッピングを第1ステージのマッピングよりも正しいらしいと看做す、すなわち、ハードウエアが期待し、ハイパーバイザが許容するアクセスのタイプを第2ステージのマッピングが記述すると仮定される。
1つの実施の形態で、トラステッド仮想機械識別子がセットされていなければ、アドレス変換回路は、第1ステージのセキュリティ値および第2ステージのセキュリティ値の如何に関らず、修正されたアクセス要求として、ノン・セキュア・メモリ内の物理アドレスを指定するノン・セキュア・アクセス要求を発行させる。このようなやり方によって、任意の仮想機械がセキュア・メモリにアクセスできるか否かについてハイパーバイザ・ソフトウエアは、最終的な支配力を保持することが明らかである。
1つの実施の形態で、ハイパーバイザ・ソフトウエアを実行するとき、処理回路は、セキュア・ドメインで実行され、セキュア・メモリは、セキュア・ドメインからアクセス可能であり、複数の仮想機械のうち任意のものを実行するとき、処理回路は、ノン・セキュア・ドメインで実行される。デフォルト設定で、セキュア・メモリは、現行の仮想機械についてトラステッド仮想機械識別子がハイパーバイザ・ソフトウエアによってセットされていて、アドレス変換回路が修正されたアクセス要求としてセキュア・メモリ内の物理アドレスを指定する前記セキュア・アクセス要求を発行させる場合を除いて、ノン・セキュア・ドメインからアクセス可能でない。
そのような実施の形態で、セキュア・ドメインで実行中の処理回路からアクセス要求が発行されると、アドレス変換回路は、指定された仮想アドレスに基づいて、ハイパーバイザ・ソフトウエアによって管理されるセキュア・ページ・テーブルに依存した仮想アドレスから物理アドレスへの変換を実行するようにアレンジされる。このことから、そのような実施の形態で、セキュア・ドメインで発行されたアクセス要求は、セキュア・ページ・テーブルに依存した仮想から物理アドレスへの単一ステージのアドレス変換によって管理できる。しかし、任意の仮想機械は、ノン・セキュア・ドメインに保留され、そのような仮想機械によって発行されたアクセス要求に対しては、先に述べたように、二段階のアドレス変換プロセスが施される。
第2の態様から見ると、本発明は、処理回路上で実行される仮想機械によるセキュア・メモリへのアクセスを制御する方法を提供する。処理回路は、処理回路上での複数の仮想機械の実行をサポートするハイパーバイザ・ソフトウエアを実行し、処理回路によるアクセスのためのデータを記憶するメモリ・システムが提供され、メモリ・システムは、セキュア・データを記憶するための前記セキュア・メモリとノン・セキュア・データを記憶するためのノン・セキュア・メモリとを含み、セキュア・メモリは、セキュア・アクセス要求を介してのみアクセス可能であって、方法は、処理回路にアクセス可能な記憶装置に、ハイパーバイザ・ソフトウエアによって管理されるトラステッド仮想機械識別子を記憶する工程であって、現行の仮想機械がセキュア・メモリへのアクセスに関して信頼できるものである場合に、ハイパーバイザ・ソフトウエアがトラステッド仮想機械識別子をセットする記憶工程、処理回路上で実行され仮想アドレスを指定する現行の仮想機械によって発行されたアクセス要求に応答して、現行の仮想機械がアクセスしようとするデータを含む前記メモリ内の物理アドレスを識別するアドレス変換プロセスを実行する工程およびメモリ・システムに対して物理アドレスを指定する修正されたアクセス要求を発行する工程であって、トラステッド仮想機械識別子がセットされている場合にのみ、修正されたアクセス要求として、セキュア・メモリ内の物理アドレスを指定する前記セキュア・アクセス要求を発行できる発行工程を含む。
第3の態様から見ると、本発明は、データ処理装置を提供する。それは、処理手段上での複数の仮想機械の実行をサポートするハイパーバイザ・ソフトウエアを実行する処理手段、処理手段によるアクセスのためのデータを記憶するメモリ手段であって、セキュア・データを記憶するセキュア・メモリ手段とノン・セキュア・データを記憶するノン・セキュア・メモリ手段とを含み、セキュア・アクセス要求を介してのみアクセス可能であるメモリ手段、処理手段上で実行され仮想アドレスを指定する現行の仮想機械によって発行されたアクセス要求に応答して、現行の仮想機械がアクセスしようとするデータを含む前記メモリ手段内の物理アドレスを識別するアドレス変換プロセスを実行し、またメモリ手段に対して物理アドレスを指定する修正されたアクセス要求を発行させるアドレス変換手段およびハイパーバイザ・ソフトウエアによって管理されるトラステッド仮想機械識別子を記憶する記憶手段であって、セキュア・メモリ手段へのアクセスに関して現行の仮想機械が信頼できるものである場合に、ハイパーバイザ・ソフトウエアがトラステッド仮想機械識別子をセットするようにアレンジされている記憶手段を含む。アドレス変換手段は、現行の仮想機械によって発行されたアクセス要求に応答して、トラステッド仮想機械識別子がセットされている場合にのみ、修正されたアクセス要求として、セキュア・メモリ手段内の物理アドレスを指定する前記セキュア・アクセス要求を発行させることができる。
本発明は、単に一例として、添付図面に示したそれの実施の形態を参照しながら更に説明する。
本発明の実施の形態が採用される仮想化環境を示す模式図である。 ノン・セキュア・ドメインおよびセキュア・ドメインで動作する別々のプログラムを示す模式図である。 本発明の1つの実施の形態に従うデータ処理装置のブロック図である。 本発明の実施の形態に使用されるページ・テーブルを示す模式図である。 本発明の第1の実施の形態に従って採用されたアドレス変換プロセスを示す模式図である。 本発明の第1の実施の形態に従って採用されたアドレス変換プロセスを示す模式図である。 本発明の第1の実施の形態に従って採用されたアドレス変換プロセスを示す模式図である。 本発明の第1の実施の形態に従うアドレス変換プロセスを示すフロー図である。 本発明の代替的実施の形態に従うアドレス変換プロセスを示す模式図である。 トラステッド仮想機械識別子がセットされていると仮定して、本発明の第2の実施の形態に従って、アクセス要求がどのように処理されるかを示す表である。 本発明の第2の実施の形態に従うアドレス変換プロセスを示すフロー図である。
図1は、本発明の実施の形態が採用される仮想化環境を示す模式図である。プロセッサ・コアなどのプロセッサ・ハードウエア10は、プロセッサ・ハードウエア上での複数の仮想機械30、40の実行をサポートするハイパーバイザ・ソフトウエア20を実行するようにアレンジされる。図1には、2つの仮想機械30、40だけが示されているが、同じプロセッサ・ハードウエア10上で実行される3つ以上の仮想機械を提供してもよいことが理解される。
各仮想機械30、40は、特定のオペレーティング・システム36、46上で走る1又は複数のアプリケーション32、34、42、44を有する。ハイパーバイザ・ソフトウエア20を介して、各仮想機械30、40に対して、その中にそれが駐在するシステムについての独自の視点が提供され、例えば、システムの利用可能なハードウエア・リソースについての独自の視点が得られる。各仮想機械30、40は、プロセッサ・ハードウエア10上で実行される他の仮想機械のいずれからも独立して動作するのが普通であって、事実、他の仮想機械の存在に気づく必要もない。
本発明の1つの実施の形態に従えば、その上にプロセッサ・ハードウエア10が駐在するデータ処理装置は、複数のドメインを有し、それらの中でデータ処理装置(プロセッサ・ハードウエア10を含む)のデバイスが動作できる。1つの特別な実施の形態で、複数のドメインは、セキュア・ドメインとノン・セキュア・ドメインとを含み、各ドメインには、予め決められたアクセス権が付随する。特に、ノン・セキュア・ドメインで動作する場合、デバイスは、そのノン・セキュア・ドメインに付随するノン・セキュア・データだけにアクセスできる。このことから、ノン・セキュア・ドメインで動作する場合、セキュア・ドメインに付随するセキュア・データにアクセスすることはできない。セキュア・ドメインに付随する予め決められたアクセス権は、多様な形を取ることができるが、典型的には、セキュア・ドメインで動作するデバイスがセキュア・ドメインのセキュア・データとノン・セキュア・ドメインのノン・セキュア・データの両方にアクセスすることを許容する。
データ処理装置のメモリ・システムは、セキュア・データを記憶するセキュア・メモリとノン・セキュア・データを記憶するノン・セキュア・メモリとを提供し、セキュア・メモリは、セキュア・アクセス要求を介してのみアクセス可能である。セキュア・メモリおよびノン・セキュア・メモリは、物理的に分離したメモリ・デバイスとして設けられる必要はなく、その代わり、各メモリ・デバイスは、メモリ・システム内で、セキュア・データを記憶する1又は複数のセキュア領域とノン・セキュア・データを記憶する1又は複数のノン・セキュア領域とを含むようにアレンジできる。すなわち、メモリ・システムの物理メモリ・アドレス空間全体を分割して複数のセキュア・メモリ領域と複数のノン・セキュア・メモリ領域とを提供するようにできる。
このようなセキュア・ドメインおよびノン・セキュア・ドメインをサポートするシステムにおいて、セキュア・ドメイン又はノン・セキュア・ドメインのいずれかで動作できる各デバイスは、1つのドメインから別のドメインに遷移するために、モニタ・コードを実行するようにアレンジされるのが一般的である。このようにアレンジされたプロセッサ・コアの例について考察すると、そのようなプロセッサ・コアの動作は、先に述べた同時譲渡の米国特許出願第10/714,561号に詳細に述べられている。図2は、そのようなプロセッサ・コアの動作の全体像を示すために提供されており、読者は、上で示した米国特許出願を参照すればこれ以上の詳細を知ることができる。
図2は、セキュア・ドメインおよびノン・セキュア・ドメインを有する処理システム上で走る各種プログラムを模式的に示す。システムには、少なくとも部分的にモニタ・モードで実行するモニタ・プログラム120が備えられている。モニタ・プログラム120は、セキュア・ドメインとノン・セキュア・ドメインとの間で双方向的なすべての変化を管理することに責任を持つ。プロセッサ・コアを外部から見ると、モニタ・モードは、常にセキュアであり、モニタ・プログラムは、セキュア・メモリにある。
ノン・セキュア・ドメイン内には、ノン・セキュア・オペレーティング・システム110と複数のノン・セキュア・アプリケーション・プログラム112、114とが備えられ、それらは、ノン・セキュア・オペレーティング・システム110と協力して実行する。セキュア・ドメインには、セキュア・カーネル・プログラム100が備えられ、セキュア・カーネル・プログラム100は、セキュア・オペレーティング・システムを構成すると考えられる。典型的には、このようなセキュア・カーネル・プログラム100は、セキュア・ドメインに備えるべき処理活動にとって本質的に重要な機能のみが備えられるように設計されており、従って、安全性が高まり、セキュア・カーネル100を可能な限り小型で簡単なものとすることが可能となる。複数のセキュア・アプリケーション102、104は、セキュア・カーネル100と組み合わせて実行するように示されている。
図2は、プロセッサ・コア内でのセキュア・ドメインからノン・セキュア・ドメインへの遷移を示すが、プロセッサ・コア自身が、複数の仮想機械が同時に存在する図1に示されたような仮想化環境で動作する状況については、考慮していない。このような仮想化技術は、ノン・セキュア・ドメインにも容易に採用でき、複数のノン・セキュア仮想機械が実行するようにできて、その各々にノン・セキュア・メモリのアドレス空間についての独自の視点を与えることができる。従って、プロセッサ・コアは、ハイパーバイザ・ソフトウエアを実行するためにモニタ・プログラム120を使用してセキュア・ドメインに入ることができ、実際に必要であれば、セキュア・ドメイン内のセキュア・オペレーティング・システム100の制御下で1又は複数のセキュア・アプリケーション102、104を付加的に実行できる。
しかし、図2の配置を利用して、複数のセキュア・オペレーティング・システムを仮想化すること、すなわち、セキュア・ドメインで複数の仮想機械を走らせることはできない。これは、セキュア・ドメインには、ハイパーバイザ・ソフトウエアとセキュア・ドメインで実行される任意の他のソフトウエアとの間に特権レベルの差異が存在しないためである。従って、複数のセキュア仮想機械が設定されれば、ハイパーバイザ・ソフトウエアによって導入された任意のアドレス変換機構を1つのセキュア仮想機械が修正することが可能となり、この処理によって他の仮想機械のうちの1つのセキュア・データにアクセスをすることが可能となる。
従って、本発明の実施の形態で、プロセッサ・ハードウエア10上で実行される複数の仮想機械を提供するために仮想化環境を利用する場合は、すべての仮想機械がノン・セキュア・ドメインで実行するようにアレンジされる。しかし、残りの図面を参照しながらより詳細に説明するように、本発明の実施の形態の技術を利用すれば、これらの仮想機械の特定のものがハイパーバイザ・ソフトウエアの制御下でセキュア・メモリにアクセスすることができる。
図3は、本発明の1つの実施の形態に従うデータ処理装置のブロック図である。中央演算ユニット(CPU)200は、プロセッサ・コア205を含み、このプロセッサ・コア205上での複数の仮想機械の実行をサポートするハイパーバイザ・ソフトウエアを実行できる。
プロセッサ・コア205は、データ処理装置のメモリ・システム260内の場所にアクセスするために、プロセッサ・コア205によって発行されるアクセス要求を管理するようにアレンジされたメモリ管理ユニット(MMU)230を介して、システム・バス250に接続される。従って、コア205が発行し仮想アドレスを指定する任意のアクセス要求は、MMU230に送られる。MMUは、予め決められたアクセス制御機能を実行することに責任を持ち、更に詳細には、その仮想アドレスに対応する物理アドレスを決定することおよびアクセス・パーミッション権限を解析して領域属性を決定することに責任を持つ。MMU230がこれらの機能を実行できるようにするために、MMUは、メモリ・システム260内に設けられた1又は複数のページ・テーブル270にアクセスできる。
ページ・テーブルの一例が図4に模式的に示されている。図4に示されたように、ページ・テーブル300は、複数の記述子を含み、各記述子は、特定のメモリ領域に関するアドレス・マッピング情報、アクセス・パーミッション権限、領域属性および任意のその他必要な情報、例えば、記述子が関連するメモリ領域のサイズを提供する。アクセス・パーミッション権限は、付随するメモリ領域が読み出し専用、書き込み専用、読み出し/書き込み、あるいは、アクセス不可のいずれであるかを指定し、他方、領域属性は、この領域へのアクセスがキャッシュ可能であるか否か、バッファリング可能であるか否かなどを識別する。アドレス・マッピング情報は、どのように入力アドレスを変換して出力アドレスを構成するかを識別する。
本発明の1つの実施の形態で、ページ・テーブル270を参照しながらMMU230によって実行されるアドレス変換は、二段階プロセスであり、その中では、まず第1ステージのページ・テーブルの関連記述子に与えられたアドレス・マッピングに依存して仮想アドレスが中間アドレスに変換され、次に第2ステージのページ・テーブルの関連記述子に与えられたアドレス・マッピングに依存して中間アドレスから物理アドレスに変換される。
これも図4に示されたように、ページ・テーブル300内の各記述子310には、ここでノン・セキュア(NS)ビット値とも呼ばれる1つのセキュリティ値が与えられる。第1ステージのページ・テーブルの関連記述子から得られたNSビット値を、ここでは第1ステージNSビット値と呼び、第2ステージのページ・テーブルの関連記述子から得られたNSビット値を第2ステージNSビット値と呼ぶ。後にもっと詳しく説明するように、これらのNSビット値は、仮想アドレスをメモリ・システム260内の物理アドレスにどのようにマッピングするかを決定するときに、MMU230によって使用される。
図3に戻ると、アクセス要求を処理するときに、MMU性能を向上させるために、MMU230によってページ・テーブル270から取り出された情報をローカルに記憶できる1又は複数のテーブル・ルックアサイド・バッファ(TLB)240がMMU230に含まれることが分かる。当業者が理解するように、TLB240に記憶された情報のサブセットをキャッシュするマイクロTLBを設けることもでき、これによって、MMU230の性能が更に向上する。
CPU200内のコンポネントの動作は、複数の制御レジスタ210によって制御される。本発明の実施の形態について説明するうえで、特定の制御レジスタが特に興味深い。まず、1又は複数の制御レジスタは、プロセッサ・コア205によって発行されたアクセス要求を処理するときに、メモリ260内のどのページ・テーブル270を参照すべきかを決定するときにMMU230によって使用されるページ・テーブル・ポインタ220を指定する。本発明の実施の形態で、仮想アドレスから物理アドレスへの変換を処理するときに、MMUが第1ステージのページ・テーブルと第2ステージのページ・テーブルの両方を参照する場合、ページ・テーブル・ポインタ220は、第1ステージのページ・テーブルへのページ・テーブル・ポインタと、第2ステージのページ・テーブルへの別のページ・テーブル・ポインタとを含む。実際のページ・テーブル・ポインタは、プロセッサ・コア205によって現在実行されている仮想機械に依存する。
1つの実施の形態で、第1ステージのページ・テーブルは、各仮想機械によって管理でき、実際に、任意の特定の仮想機械は、その仮想機械上で走る異なるアプリケーションの各々に対して別々の第1ステージのページ・テーブルを設定できる。このことから、制御レジスタ210内に設けられた第1ステージのページ・テーブル・ポインタは、現在走っている仮想機械に依存し、また多分その仮想機械内で走っている特定のアプリケーションに依存して、プロセッサ・コア205によってセットされる。
これと対照的に、第2ステージのページ・テーブルは、ハイパーバイザ・ソフトウエア20によって管理される。ハイパーバイザ・ソフトウエアは、各仮想機械に対して別々の第2ステージ・ページ・テーブルを提供する。このことから、この場合も制御レジスタ210内に設けられる実際の第2ステージ・ページ・テーブル・ポインタは、現在実行されている仮想機械に依存して、プロセッサ・コア205上で走っているハイパーバイザ・ソフトウエアによってセットされる。
ページ・テーブル・ポインタ220に加えて、プロセッサ・コア205上で実行されるハイパーバイザ・ソフトウエアは、トラステッドVMビットがセットされていれば、制御レジスタ210内にトラステッド仮想機械(VM)ビット215をセットできる。これは、セキュア・メモリへのアクセスに関して現在実行中の仮想機械が信頼できることを示す。後にもっと詳しく説明するように、ハイパーバイザ・ソフトウエアによってトラステッドVMビットがセットされている場合にのみ、MMU230は、プロセッサ・コア205によって発行された特定のアクセス要求に応答して、セキュア・メモリ内の物理アドレス又はノン・セキュア・メモリ内の物理アドレスのいずれを生成するかを決定するために、第1ステージのページ・テーブルおよび第2ステージのページ・テーブルからのNSビット値を使用する。トラステッドVMビット値がセットされていない場合、NSビット値情報は、無視され、現行の仮想機械によって発行される任意のアクセス要求は、ノン・セキュア・メモリ内の物理アドレスにマッピングされる。
従って、MMU230がアクセス要求を受信すると、それは、1又は複数のTLB構造240を参照して、アクセス要求によって指定された仮想アドレスを含むメモリ領域に関する第1ステージおよび第2ステージのページ・テーブルからの記述子情報をそのTLBが現時点で記憶しているか否かを判断する。もしそうでなければ、MMU230は、制御レジスタ210内のページ・テーブル・ポインタ情報220を使用して、メモリ260内の関連する第1および/又は第2ステージのページ・テーブル270にアクセスして、必要な記述子を取り出す。これによって、それらの記述子は、TLB240に記憶でき、アクセス要求を処理するためにMMU230が使用することができる。
1又は複数のTLB構造240内の第1ステージおよび第2ステージのページ・テーブルからの記述子を記憶するようにMMU230をアレンジするやり方は、複数存在する。例えば、1つの実施の形態で、MMU230は、各々それ自身のTLBを有する2つの別々のMMU、すなわち、仮想から中間アドレスへの変換を実行する第1のMMUと中間から物理アドレスへの変換を実行する第2のMMUとを含むと考えることができる。あるいは、必要とされる二段階のアドレス変換プロセスを実行するために、単一の統合MMUおよび関連TLB構造を設けることでもよい。MMUをアレンジする方法のもっと詳細な点については、その全体を参照によってここに取り込む同時譲渡の米国特許第7,171,539号に議論されている。
図5Aは、トラステッドVMビット215がセットされていない状況で、ノン・セキュア・ドメインのプロセッサ・コア205上で実行される仮想機械によって発行されるアクセス要求に対して、MMU230によって実行されるアドレス変換を模式的に示す。図5Aに示すように、1又は複数の仮想アドレス空間350は、仮想機械上で実行されるアプリケーションによって使用され、また例えば、その仮想機械によって実行される各アプリケーションには、別々の仮想アドレス空間が関連する。そのような仮想アドレス空間の各々に対して、仮想機械は、別々の第1ステージのページ・テーブルを設定する。関係する第1ステージのページ・テーブルを参照しながら、MMU230は、仮想アドレス空間350からノン・セキュア中間アドレス空間355へのアドレス変換352を実行できる。このアドレス変換は、仮想機械による第1ステージのページ・テーブルの管理を介して事実上仮想機械によって制御される。
その後、MMU230は、中間アドレスから物理アドレスへの変換357を実行するために、ハイパーバイザによって制御される第2ステージのページ・テーブルを参照する。トラステッドVMビットがセットされていないので、第1ステージのページ・テーブル又は第2ステージのページ・テーブルのいずれかに指定された任意のNSビット値は、無視され、その代わりに、第2ステージのアドレス変換357は、常にノン・セキュア物理アドレス空間360内の物理アドレスを生成する。第2ステージのページ・テーブルがハイパーバイザによって管理されるので、仮想機械は、アドレス変換の第2ステージを変更できず、従って、そのようなアクセス要求に応答して、ノン・セキュア物理アドレスのみが発行されることが保証される。
図5Bは、トラステッドVMビットがセットされている場合に、MMU230によってアドレス変換がどのように実行されるかを示す。図5Bに示されたように、MMUは、ここでも関連する第1ステージのページ・テーブルを参照するが、中間アドレスへのマッピングは、第1ステージのページ・テーブルの関連する記述子のNSビットの値に依存する。NSビットがセットされていて、仮想機械がアクセス要求をノン・セキュア・アクセス要求であると考えていることが示されれば、アドレス変換354によってノン・セキュア中間アドレス空間370内の中間アドレスが生成されるとき、ノン・セキュアな第2ステージのページ・テーブルが参照されて、ノン・セキュア中間アドレス空間370からノン・セキュア物理アドレス空間360へのマッピング372が提供される。アドレス変換のこの第2ステージは、これ以降、図5Aに関連して説明したのと同じように進行する。
しかし、第1ステージのページ・テーブルの関連記述子のNSビットがクリアで、仮想機械がそのアクセス要求をセキュア・アクセス要求であると考えていることが示されれば、アドレス変換356によってセキュア中間アドレス空間375内の中間アドレスが生成されるとき、アドレス変換プロセスの第2ステージに関してセキュアな第2ステージのページ・テーブルが参照され、このセキュアな第2ステージのページ・テーブルが、セキュア中間アドレス空間375から物理アドレス空間360、380へのマッピング377、379を提供する。図5Bに示されたように、アドレス変換のこの第2ステージは、セキュア物理アドレス空間380又はノン・セキュア物理アドレス空間360のいずれかの中にある物理アドレスを生成することが可能であり、これは、第2ステージのページ・テーブルの関連記述子のNSビット値に依存する。特に、第2ステージのページ・テーブル記述子のNSビットがセットされていて、ハイパーバイザがアクセスをノン・セキュア・アクセスであると考えていることが示されると、MMU230によってノン・セキュア物理アドレス空間360内の物理アドレスが生成される。しかし、NSビットがクリアで、ハイパーバイザがアクセスをセキュアであると考えていることが示されると、MMU230によってセキュア物理アドレス空間380内の物理アドレスが生成される。
1つの実施の形態で、トラステッドVMビットがセットされるときに使用されるノン・セキュアな第2ステージのページ・テーブルは、トラステッドVMビットがセットされていないときに使用される第2ステージのページ・テーブルと同じページ・テーブルである。従って、このことによって、トラステッド仮想機械は、図2のセキュア・ドメインで走っているソフトウエアがノン・セキュア・ドメインで走っているノン・セキュア・アプリケーションのデータにアクセスできるのと同じやり方で、ノン・セキュア仮想機械のメモリ空間にアクセスできる。これによって、さもなければセキュア・ドメインで動作するように設計されたセキュア・ソフトウエアがトラステッド仮想機械(これは、先に述べたように実際には、ノン・セキュア・ドメインで走る)でも正しく動作することを許容するために必要とされる変更が低減される。
図5Cは、例えば、ハイパーバイザ・ソフトウエアによって、あるいは、セキュア・ドメインで走っている任意のその他のソフトウエアから発行された任意のアクセス要求についてのケースと同じように、セキュア・ドメインで実行中のプロセッサ・コア205によって発行された任意のアクセス要求について、MMU230がどのようにアドレス変換を管理するのかを示している。このケースでは、セキュア・ページ・テーブルが使用されて、セキュア・ページ・テーブルの関連記述子に記憶されたNSビット値に依存して、セキュア仮想アドレス空間390の仮想アドレスから、ノン・セキュア物理アドレス空間360又はセキュア物理アドレス空間380のいずれかの物理アドレスへのダイレクト・マッピング392、394が提供される。セキュア・ページ・テーブルは、一般にハイパーバイザによって管理され、従って、この変換は、ハイパーバイザ・ソフトウエアによって制御されると考えられる。従って、理解されるように、この機構は、図2に示されたものと同じような、例えば、仮想化が存在しないシステムのような処理デバイスのセキュア・ドメインで走るセキュア・アプリケーションに対して提供される標準的なアドレス変換機構とまったく同じことになる。
図6は、図5Aおよび図5Bに関連して先に説明した本発明の第1の実施の形態に従って実行されるアドレス変換プロセスを示すフロー図である。工程400で、MMU230は、アクセス要求を待ち、アクセス要求が受信されると、MMUは、検索プロシージャを実行して、第1ステージのページ・テーブルの関連記述子に記憶された情報にアクセスしようとする(この関連記述子を、ここで第1記述子と呼ぶ)。明らかなように、この情報が既にTLB240中にキャッシュされていれば、第1ステージのページ・テーブルで検索を実際に実行する必要がなくなり、その代わりにTLBから直接情報を得ることができる。
工程410で、次に、第1記述子のNSビットがクリアであるか否かが判断され、そうであれば、工程415で、現行の仮想機械に対してトラステッドVMビット215がセットされているか否かが判断される。第1記述子のNSビットがクリアで、トラステッドVMビットがセットされている場合にのみ、プロセッサは、工程420に進み、そこにおいて、セキュアな第2ステージのページ・テーブルの関連記述子(ここで第2記述子と呼ぶ)で別の検索が実行される。この場合も、この情報が既にTLB240にキャッシュされていれば、第2ステージのページ・テーブルで検索を実際に実行する必要はない。この後、第2記述子のNSビットがクリアであるか否かが判断され、そうであれば、MMU230は、工程430で物理アドレスを生成して、セキュア・メモリへのアクセス実行を可能にする。
第1記述子のNSビットがクリアでなければ、あるいは、トラステッドVMビットがセットされていなければ、工程410/415は、工程435に分岐して、そこにおいてノン・セキュアな第2ステージのページ・テーブルに関してアドレス変換の第2ステージが実行され、そのノン・セキュアな第2ステージのページ・テーブルの関連記述子が再調査されて、必要なアクセス情報が得られる。ここでも、この情報が既にTLB240にキャッシュされていれば、第2ステージのページ・テーブルで実際に検索を実行する必要はない。この後、ノン・セキュア・アドレス空間のアドレスが生成され、工程440でノン・セキュア・メモリへのアクセス実行が許可される。
同様に、工程425で第2記述子のNSビットがクリアでないと判断されると、ノン・セキュア・メモリ内の物理アドレスが生成されて、プロセスは、工程440に進み、そこにおいて、ノン・セキュア・メモリへのアクセスが実行される。
図7Aは、代替的実施の形態を示しているが、ここでは、ノン・セキュアとセキュアとに分離された第2ステージのページ・テーブルが設けられず、その代わりに、単一の第2ステージのページ・テーブルが使用される。図7Aに示されたように、アドレス変換の第1ステージは、ここでも仮想から中間へのアドレス変換を実行するために、関連する仮想アドレス空間350に関する第1ステージのページ・テーブルを参照する。そしてこの実施の形態で、第1ステージのページ・テーブルの関連記述子からのNSビット値は、アドレス変換プロセスの第2ステージで使用するために、中間アドレスと一緒に送られる。アドレス変換プロセスの第2ステージには、必要とされる中間から物理へのアドレス変換504、506を識別するための中間アドレス空間500に関する第2ステージのページ・テーブルへの参照が含まれる。特に、第1ステージのページ・テーブルおよび第2ステージのページ・テーブルの両方のNSビット値およびトラステッドVMビットのセッティングに依存して、MMU230は、ノン・セキュア物理アドレス空間360内の物理アドレス又はセキュア物理アドレス空間380内の物理アドレスのいずれを生成するかを決定する。特に、トラステッドVMビットがセットされていて、第1ステージのページ・テーブルおよび第2ステージのページ・テーブルの両方からのNSビット値がクリアである(セキュア・アクセスであることを意味する)場合にのみ、MMUは、セキュア物理アドレス空間380内の物理アドレスを生成する。
図7Bは、トラステッドVMビットがセットされていると仮定して、MMUが、第1記述子および第2記述子のNSビット値に依存して、どのように物理アドレスを生成するのかを示す表である。明らかなように、両方のNSビットがそのアクセスがセキュアであるとして示す場合は、セキュア・メモリへのアクセスを許容する物理アドレスが生成される。同様に、両方のNSビットがそのアクセスをノン・セキュアであるとして示す場合には、ノン・セキュア物理アドレス空間360内のアドレスを指定する物理アドレスが生成される。
1つの実施の形態で、第1記述子に関するNSビット値が第2記述子に関するNSビット値と一致しない場合、そのアクセスは、中止される。しかし、1つの実施の形態では、第1記述子に関するNSビット値がそのアクセスをセキュアであるとマークし、第2記述子に関するNSビット値がそのアクセスをノン・セキュアであるとマークする場合に、第2ステージのページ・テーブルに付随するNSビット値を信頼できるものとして扱って、ノン・セキュア物理アドレス空間360内の物理アドレスが生成される。従って、ハイパーバイザ・ソフトウエアが第2ステージのページ・テーブルを制御するので、ハイパーバイザ・ソフトウエアがそのアクセスをノン・セキュアとして扱うべきであると示す場合、第1ステージのページ・テーブル(仮想機械によって制御される)の関連するNSビット値がそのアクセスをセキュアであると識別しても、そのアクセスは、ノン・セキュアであるとして扱われる。
図8は、図7Aおよび7Bのこの代替的実施の形態を採用した場合のMMU230の動作を示すフロー図である。工程510で、アクセス要求の受信を待って、アクセス要求が受信されると、必要なアクセス情報を第1記述子から得ることを目的に、工程515で第1ステージのページ・テーブルを参照しながら検索が実行される。この後、工程520でも、必要なアクセス情報を第2記述子から得ることを目的に検索が実行される。ここには、逐次的に示してあるが、工程515と工程520とを並列に実行することもできる。図6に関連して説明した第1の実施の形態と同じように、必要な情報が既にTLB240にキャッシュされていれば、第1および/又は第2ステージのページ・テーブルについてアクセスを実行する必要はなくなる。
工程525では、トラステッドVMビットがセットされているか否かが判断される。もしそうでなければ、ノン・セキュア物理アドレス空間内の物理アドレスが生成されて、工程545でノン・セキュア・メモリへのアクセスが実行される。
しかし、トラステッドVMビットがセットされていれば、工程530で第1記述子と第2記述子とでNSビットが一致するか否かが判断される。それらが一致しない場合には、1つの実施の形態に従って、工程550でアクセスは、中止される。しかし、NSビットが一致したことを仮定すると、工程535で、両方のNSビットがクリアであるか否か(すなわち、両方のNSビットがアクセスをセキュアであると識別しているか否か)が判断される。もし両方のNSビットがクリアであれば、セキュア物理アドレス空間内の物理アドレスが生成されて、工程540でセキュア・メモリへのアクセスが実行される。そうでなければ、プロセスは、工程535から工程545へ分岐して、MMU230によって生成されたノン・セキュア物理アドレス空間内の物理アドレスを使用して、ノン・セキュア・メモリへのアクセスが実行される。
本発明の実施の形態についてのこれまでの説明から明らかなように、これらの実施の形態は、1つのプロセッサ上で複数の仮想機械を実行することを許容し、それら仮想機械の個々のものは、ハイパーバイザ・ソフトウエアによって管理されるトラステッドVMビットのセッティングを通して、ハイパーバイザ・ソフトウエアの制御下でセキュア・メモリにアクセスすることを許容される。セキュア・ドメインとノン・セキュア・ドメインとを有するシステムでは、すべての仮想機械をノン・セキュア・ドメインで実行できるが、セキュア・ドメインで実行されるハイパーバイザ・ソフトウエアによって管理されるトラステッドVMビットを使用すれば、それらの仮想機械の特定のものをトラステッド仮想機械として認めることができ、セキュア・メモリのアドレス空間にマッピングできるアクセス要求を発行することを許容することができ、それらの仮想機械は、ハイパーバイザ・ソフトウエアの制御下でセキュア・メモリへ制御されたアクセスを実行できる。
従って、本発明の実施の形態の技術を利用することによって、実際には、ノン・セキュア・ドメインで動作していても、あたかもセキュア・ドメインで動作しているかのようにメモリにアクセスすることを許容される複数のトラステッド仮想機械を提供できる。トラステッド仮想機械は、ノン・セキュア・ドメインで動作するので、図2に示されたセキュア・カーネル100上で実行されるセキュア・アプリケーション102、104のように、セキュア・ドメインで真に動作するアプリケーションに関連するようなセキュア・レベルの特権を有さない。しかし、ハイパーバイザの制御下では、セキュア・アプリケーション102、104がセキュア・メモリにアクセスできるのと同様なやり方で、セキュア・メモリにアクセスすることを許容される。
このようなやり方によって、ハイパーバイザ・ソフトウエアは、ノン・セキュア・オペレーティング・システムと同様なやり方で、複数のセキュア・オペレーティング・システムを仮想化できる。すなわち、1つの実施の形態で、図2に示されたのと同じような、複数のセキュアおよびノン・セキュアのオペレーティング・システム対を仮想化できる。
ここに特定の実施の形態について説明してきたが、本発明がそれらに限られることなく、それらに対して多くの修正および追加を行うことが本発明の範囲内で可能であることを理解されよう。例えば、本発明の範囲から外れることなしに、独立項の特徴で以って以下の従属項の特徴の各種組合せを実現できる。
10 プロセッサ・ハードウエア
20 ハイパーバイザ・ソフトウエア
30 仮想機械
32,34 アプリケーション
36 オペレーティング・システム
40 仮想機械
42,44 アプリケーション
46 オペレーティング・システム
100 カーネル・プログラム
102,104 セキュア・アプリケーション
110 ノン・セキュア・オペレーティング・システム
112,114 ノン・セキュア・アプリケーション・プログラム
120 モニタ・プログラム
200 中央演算ユニット(CPU)
205 プロセッサ・コア
210 制御レジスタ
215 仮想機械(VM)
220 ページ・テーブル・ポインタ
230 メモリ管理ユニット(MMU)
240 テーブル・ルックアサイド・バッファ(TLB)
250 システム・バス
260 メモリ・システム
270 ページ・テーブル
300 ページ・テーブル
310 記述子
350 仮想アドレス空間
352 アドレス変換
354 アドレス変換
355 中間アドレス空間
356 アドレス変換
357 アドレス変換
360 物理アドレス空間
370 中間アドレス空間
372 マッピング
375 中間アドレス空間
377,379 マッピング
380 物理アドレス空間
390 仮想アドレス空間
392,394 ダイレクト・マッピング
500 中間アドレス空間
502,504,506 アドレス変換

Claims (13)

  1. データ処理装置であって、
    処理回路上での複数の仮想機械の実行をサポートするハイパーバイザ・ソフトウエアを実行する処理回路と、
    処理回路によるアクセスのためのデータを記憶するメモリ・システムであって、セキュア・データを記憶するセキュア・メモリとノン・セキュア・データを記憶するノン・セキュア・メモリとを含み、セキュア・メモリは、セキュア・アクセス要求を介してのみアクセス可能であるメモリ・システムと、
    処理回路上で実行される現行の仮想機械によって発行された仮想アドレスを指定するアクセスに応答して、現行の仮想機械によってアクセスしようとするデータを含む前記メモリ・システム内の物理アドレスを識別するために、また物理アドレスを指定する修正されたアクセス要求をメモリ・システムに対して発行させるためにアドレス変換プロセスを実行するアドレス変換回路と、
    ハイパーバイザ・ソフトウエアによって管理されるトラステッド仮想機械識別子を記憶する記憶装置であって、ハイパーバイザ・ソフトウエアは、現行の仮想機械がセキュア・メモリへのアクセスに関して信頼できるものである場合に、トラステッド仮想機械識別子をセットするようにアレンジされている記憶装置と、
    を含み、
    処理回路は、ハイパーバイザ・ソフトウエアを実行するときにセキュア・ドメイン内で実行し、複数の仮想機械のうち任意の仮想機械を実行するときにノン・セキュア・ドメイン内で実行するように構成され、セキュア・メモリはセキュア・ドメインからアクセス可能であり、デフォルト設定においてはセキュア・メモリはノン・セキュア・ドメインからはアクセスできず、
    現行の仮想機械によって発行されたアクセス要求に応答して、アドレス変換回路は、トラステッド仮想機械識別子がセットされていない場合に、修正されたアクセス要求がノン・セキュア・メモリ内の物理アドレスを指定するノン・セキュア・アクセス要求として発行されるようにデフォルト設定を維持し、トラステッド仮想機械識別子がセットされている場合に、修正されたアクセス要求が、処理回路がノン・セキュア・ドメイン内で実行を継続しつつ、セキュア・メモリ内の物理アドレスを指定することができるセキュア・アクセス要求として発行され、デフォルト設定に打ち勝つように構成されている、
    データ処理装置。
  2. 請求項1記載のデータ処理装置であって、アドレス変換回路は、第1ステージのページ・テーブルに依存した仮想アドレスから中間アドレスへの変換と、第2ステージのページ・テーブルに依存した中間アドレスから物理アドレスへの変換を実行することによってアドレス変換を実行するようにアレンジされており、少なくとも第2ステージのページ・テーブルがハイパーバイザ・ソフトウエアによって管理される前記データ処理装置。
  3. 請求項2記載のデータ処理装置であって、第1ステージのページ・テーブルが現行の仮想機械によって管理される前記データ処理装置。
  4. 請求項2記載のデータ処理装置であって、更に
    第1ステージのページ・テーブルおよび第2ステージのページ・テーブルを識別するページ・テーブル識別子記憶装置を含み、
    トラステッド仮想機械識別子がセットされている場合、ページ・テーブル識別子記憶装置は、ノン・セキュアな第2ステージのページ・テーブルおよびセキュアな第2ステージのページ・テーブルを識別するようにアレンジされており、
    現行の仮想機械によって発行されたアクセス要求に応答してアドレス変換を実行するとき、アドレス変換回路は、指定された仮想アドレスを使用して、対応する中間アドレスを生成するために必要な情報を提供する第1ステージのページ・テーブルの記述子にアクセスし、また記述子は、更に第1ステージのセキュリティ値を提供しており、
    トラステッド仮想機械識別子がセットされている場合、中間アドレスから物理アドレスへの変換を実行するときに、第1ステージのセキュリティ値を使用して、ノン・セキュアな第2ステージのページ・テーブルとセキュアな第2ステージのページ・テーブルのどちらを使用するかが決定される、
    前記データ処理装置。
  5. 請求項4記載のデータ処理装置であって、トラステッド仮想機械識別子がセットされていない場合、中間アドレスから物理アドレスへの変換を実行するときに、第1ステージのセキュリティ値に関わらず、ノン・セキュアな第2ステージのページ・テーブルが使用され、またアドレス変換回路は、修正されたアクセス要求として、ノン・セキュア・メモリ内の物理アドレスを指定するノン・セキュア・アクセス要求を発行させる前記データ処理装置。
  6. 請求項4記載のデータ処理装置であって、
    中間アドレスから物理アドレスへの変換を実行するときにセキュアな第2ステージのページ・テーブルが使用される場合、アドレス変換回路は、生成された中間アドレスを使用して、対応する物理アドレスを生成するために必要な情報を提供するセキュアな第2ステージのページ・テーブルの記述子にアクセスし、記述子は、更に第2ステージのセキュリティ値を提供しており、
    対応する物理アドレスとして、セキュア・メモリ内の物理アドレス又はノン・セキュア・メモリ内の物理アドレスのいずれをアドレス変換回路が発生するかを決定するために第2ステージのセキュリティ値が使用され、
    これによって、アドレス変換回路は、トラステッド仮想機械識別子がセットされている場合、修正されたアクセス要求として、セキュア・メモリ内の物理アドレスを指定する前記セキュア・アクセス要求を発行させ、第1ステージのセキュリティ値は、中間アドレスから物理アドレスへの変換を実行するときに、セキュアな第2ステージのページ・テーブルを使用させ、また第2ステージのセキュリティ値は、対応する物理アドレスとして、セキュア・メモリ内の物理アドレスをアドレス変換回路に発生させる、
    前記データ処理装置。
  7. 請求項2記載のデータ処理装置であって、
    現行の仮想機械によって発行されたアクセス要求に応答してアドレス変換を実行するとき、アドレス変換回路は、指定された仮想アドレスを使用して、対応する中間アドレスを生成するために必要な情報を提供する第1ステージのページ・テーブルの記述子にアクセスし、記述子は、更に第1ステージのセキュリティ値を提供しており、アドレス変換回路は、更に生成された中間アドレスを使用して、対応する物理アドレスを生成するために必要な情報を提供する第2ステージのページ・テーブルの記述子にアクセスし、記述子は、更に第2ステージのセキュリティ値を提供しており、
    トラステッド仮想機械識別子がセットされている場合、第1ステージのセキュリティ値と第2ステージのセキュリティ値が両方ともそのアクセスをセキュアであると識別していれば、アドレス変換回路は、修正されたアクセス要求として、セキュア・メモリ内の物理アドレスを指定する前記セキュア・アクセス要求を発行させる、
    前記データ処理装置。
  8. 請求項7記載のデータ処理装置であって、トラステッド仮想機械識別子がセットされている場合、第1ステージのセキュリティ値と第2ステージのセキュリティ値が両方ともそのアクセスをノン・セキュアであると識別していれば、アドレス変換回路は、修正されたアクセス要求として、ノン・セキュア・メモリ内の物理アドレスを指定するノン・セキュア・アクセス要求を発行させる前記データ処理装置。
  9. 請求項7記載のデータ処理装置であって、トラステッド仮想機械識別子がセットされている場合、第1ステージのセキュリティ値と第2ステージのセキュリティ値とが異なっていれば、アドレス変換回路は、そのアクセス要求を中止させる前記データ処理装置。
  10. 請求項7記載のデータ処理装置であって、トラステッド仮想機械識別子がセットされていない場合、アドレス変換回路は、第1ステージのセキュリティ値および第2ステージのセキュリティ値の如何に関わらず、修正されたアクセス要求として、ノン・セキュア・メモリ内の物理アドレスを指定するノン・セキュア・アクセス要求を発行させる前記データ処理装置。
  11. 請求項記載のデータ処理装置であって、セキュア・ドメインで実行中の処理回路によってアクセス要求が発行されると、アドレス変換回路は、指定された仮想アドレスを基に、ハイパーバイザ・ソフトウエアによって管理されるセキュア・ページ・テーブルに依存した仮想アドレスから物理アドレスへの変換を実行するようにアレンジされている前記データ処理装置。
  12. 処理回路上で実行される仮想機械によるセキュア・メモリへのアクセスを制御する方法であって、
    処理回路は、処理回路上での複数の仮想機械の実行をサポートするハイパーバイザ・ソフトウエアを実行し、処理回路によるアクセスに関するデータを記憶するメモリ・システムが設けられ、メモリ・システムは、セキュア・データを記憶する前記セキュア・メモリとノン・セキュア・データを記憶するノン・セキュア・メモリとを含み、セキュア・メモリは、セキュア・アクセス要求を介してのみアクセス可能であり、前記方法は、
    処理回路に、ハイパーバイザ・ソフトウエアを実行するときにセキュア・ドメイン内で実行させ、複数の仮想機械のうち任意の仮想機械を実行するときにノン・セキュア・ドメイン内で実行させる工程であって、セキュア・メモリはセキュア・ドメインからアクセス可能であり、デフォルト設定においてはセキュア・メモリはノン・セキュア・ドメインからはアクセスできないようにする工程と、
    処理回路に対してアクセス可能な記憶装置に、ハイパーバイザ・ソフトウエアによって管理されるトラステッド仮想機械識別子を記憶する工程であって、ハイパーバイザ・ソフトウエアは、現行の仮想機械がセキュア・メモリへのアクセスに関して信頼できるものである場合、トラステッド仮想機械識別子をセットするようになっている記憶工程と、
    処理回路上で実行される現行の仮想機械によって発行された仮想アドレスを指定するアクセス要求に応答して、現行の仮想機械によってアクセスしようとするデータを含む前記メモリ内の物理アドレスを識別するためにアドレス変換を実行する工程であって、トラステッド仮想機械識別子がセットされていない場合には、修正されたアクセス要求がノン・セキュア・メモリ内の物理アドレスを指定するノン・セキュア・アクセス要求として発行されるようにデフォルト設定を維持し、トラステッド仮想機械識別子がセットされている場合には、修正されたアクセス要求が、処理回路がノン・セキュア・ドメイン内で実行を継続しつつ、セキュア・メモリ内の物理アドレスを指定することができるセキュア・アクセス要求として発行され、デフォルト設定に打ち勝つようにアドレス変換を行う工程、
    を含む方法。
  13. データ処理装置であって、
    処理手段上での複数の仮想機械の実行をサポートするためにハイパーバイザ・ソフトウエアを実行する処理手段と、
    処理手段によるアクセスのためのデータを記憶するメモリ手段であって、セキュア・データを記憶するセキュア・メモリ手段とノン・セキュア・データを記憶するノン・セキュア・メモリ手段とを含み、セキュア・アクセス要求を介してのみアクセス可能であるメモリ手段と、
    処理手段上で実行される現行の仮想機械によって発行された仮想アドレスを指定するアクセス要求に応答して、現行の仮想機械によってアクセスしようとするデータを含む前記メモリ手段内の物理アドレスを識別するためにアドレス変換を実行し、メモリ手段に対して、物理アドレスを指定する修正されたアクセス要求を発行させるアドレス変換手段と、
    ハイパーバイザ・ソフトウエアによって管理されるトラステッド仮想機械識別子を記憶する記憶手段であって、ハイパーバイザ・ソフトウエアは、セキュア・メモリ手段へのアクセスに関して現行の仮想機械が信頼できるものであれば、トラステッド仮想機械識別子をセットするようにアレンジされている記憶手段と、
    を含み、
    処理手段は、ハイパーバイザ・ソフトウエアを実行するときにセキュア・ドメイン内で実行し、複数の仮想機械のうち任意の仮想機械を実行するときにノン・セキュア・ドメイン内で実行するように構成され、セキュア・メモリ手段はセキュア・ドメインからアクセス可能であり、デフォルト設定においてはセキュア・メモリ手段はノン・セキュア・ドメインからはアクセスできず、
    現行の仮想機械によって発行されたアクセス要求に応答して、アドレス変換手段は、トラステッド仮想機械識別子がセットされていない場合に、修正されたアクセス要求がノン・セキュア・メモリ手段内の物理アドレスを指定するノン・セキュア・アクセス要求として発行されるようにデフォルト設定を維持し、トラステッド仮想機械識別子がセットされている場合に、修正されたアクセス要求が、処理手段がノン・セキュア・ドメイン内で実行を継続しつつ、セキュア・メモリ手段内の物理アドレスを指定することができるセキュア・アクセス要求として発行され、デフォルト設定に打ち勝つように構成されている、
    データ処理装置。
JP2009045231A 2008-02-29 2009-02-27 データ処理装置および処理回路上で実行される仮想機械によるセキュア・メモリへのアクセス制御方法 Active JP5234794B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0803830.9 2008-02-29
GB0803830.9A GB2460393B (en) 2008-02-29 2008-02-29 A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry

Publications (2)

Publication Number Publication Date
JP2009211698A JP2009211698A (ja) 2009-09-17
JP5234794B2 true JP5234794B2 (ja) 2013-07-10

Family

ID=39315772

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009045231A Active JP5234794B2 (ja) 2008-02-29 2009-02-27 データ処理装置および処理回路上で実行される仮想機械によるセキュア・メモリへのアクセス制御方法

Country Status (4)

Country Link
US (1) US8418175B2 (ja)
JP (1) JP5234794B2 (ja)
CN (1) CN101520753B (ja)
GB (1) GB2460393B (ja)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464252B2 (en) * 2009-02-27 2013-06-11 Red Hat, Inc. Per process virtual machines
GB2474666B (en) * 2009-10-21 2015-07-15 Advanced Risc Mach Ltd Hardware resource management within a data processing system
US20110202740A1 (en) * 2010-02-17 2011-08-18 Arm Limited Storing secure page table data in secure and non-secure regions of memory
US8694755B1 (en) * 2010-03-17 2014-04-08 Ambarella, Inc. Virtual memory management for real-time embedded devices
US8812400B2 (en) 2010-07-09 2014-08-19 Hewlett-Packard Development Company, L.P. Managing a memory segment using a memory virtual appliance
CN101950274B (zh) * 2010-07-14 2012-06-20 北京北大众志微系统科技有限责任公司 一种管态维护且目态共享的数据访问装置及方法
WO2012045191A1 (en) * 2010-10-05 2012-04-12 Intel Corporation System and method for multiple native software applications user interface composition
CN102571698B (zh) * 2010-12-17 2017-03-22 中国移动通信集团公司 一种虚拟机访问权限的控制方法、系统及装置
WO2012145916A1 (zh) * 2011-04-29 2012-11-01 北京中天安泰信息科技有限公司 数据安全存储方法及装置
US8943330B2 (en) * 2011-05-10 2015-01-27 Qualcomm Incorporated Apparatus and method for hardware-based secure data processing using buffer memory address range rules
US20140196036A1 (en) * 2011-07-12 2014-07-10 Kok Leong Ryan Ko Tracing operations in a cloud system
US8719546B2 (en) * 2012-01-04 2014-05-06 Intel Corporation Substitute virtualized-memory page tables
EP2801026A4 (en) * 2012-01-04 2015-08-12 Intel Corp TABLES OF VIRTUALIZED SUBSTITUTION MEMORY PAGES
US9141559B2 (en) 2012-01-04 2015-09-22 Intel Corporation Increasing virtual-memory efficiencies
WO2013126852A2 (en) * 2012-02-24 2013-08-29 Missing Link Electronics, Inc. Partitioning systems operating in multiple domains
US9171302B2 (en) 2012-04-18 2015-10-27 Google Inc. Processing payment transactions without a secure element
EP2672672A1 (en) * 2012-06-07 2013-12-11 Alcatel-Lucent Secure data processing
US9047090B2 (en) 2012-08-07 2015-06-02 Qualcomm Incorporated Methods, systems and devices for hybrid memory management
US10275267B1 (en) * 2012-10-22 2019-04-30 Amazon Technologies, Inc. Trust-based resource allocation
KR101954733B1 (ko) 2012-10-26 2019-03-06 삼성전자주식회사 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치
EP2954419B1 (en) * 2013-02-05 2017-03-29 ARM Limited Virtualisation supporting guest operating systems using memory protection units
US9396011B2 (en) 2013-03-12 2016-07-19 Qualcomm Incorporated Algorithm and apparatus to deploy virtual machine monitor on demand
US8959576B2 (en) * 2013-03-14 2015-02-17 Intel Corporation Method, apparatus, system for qualifying CPU transactions with security attributes
GB2515047B (en) * 2013-06-12 2021-02-10 Advanced Risc Mach Ltd Security protection of software libraries in a data processing apparatus
US9530000B2 (en) 2013-06-14 2016-12-27 Microsoft Technology Licensing, Llc Secure privilege level execution and access protection
US10061940B2 (en) 2013-07-09 2018-08-28 Andes Technology Corporation Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event
GB2517493A (en) 2013-08-23 2015-02-25 Advanced Risc Mach Ltd Handling access attributes for data accesses
US20150113594A1 (en) * 2013-10-18 2015-04-23 Vixs Systems, Inc. Processing system with virtual clients and methods for use therewith
US10114760B2 (en) * 2014-01-14 2018-10-30 Nvidia Corporation Method and system for implementing multi-stage translation of virtual addresses
US20150254145A1 (en) * 2014-03-07 2015-09-10 Microsoft Corporation Operating system/hypervisor efficiencies for sub-divided privilege levels
US9785769B2 (en) * 2014-03-18 2017-10-10 Dalian University Of Technology Countering attacks on a cache
US10558584B2 (en) * 2014-06-23 2020-02-11 Intel Corporation Employing intermediary structures for facilitating access to secure memory
GB2536201B (en) * 2015-03-02 2021-08-18 Advanced Risc Mach Ltd Handling address translation requests
US10013360B2 (en) * 2015-03-04 2018-07-03 Cavium, Inc. Managing reuse information with multiple translation stages
GB2536880B (en) * 2015-03-24 2021-07-28 Advanced Risc Mach Ltd Memory management
GB2539436B (en) * 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
GB2539435B8 (en) * 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
GB2539433B8 (en) * 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
US10691476B2 (en) * 2015-06-27 2020-06-23 Mcafee, Llc Protection of sensitive data
KR102130744B1 (ko) 2015-07-21 2020-07-06 삼성전자주식회사 전자 장치 및 이의 제어 방법
US10558582B2 (en) 2015-10-02 2020-02-11 Intel Corporation Technologies for execute only transactional memory
KR102429906B1 (ko) * 2015-10-13 2022-08-05 삼성전자주식회사 스토리지 장치, 상기 스토리지 장치와 통신하는 호스트 및 상기 스토리지 장치를 포함하는 전자 장치
GB2545170B (en) * 2015-12-02 2020-01-08 Imagination Tech Ltd GPU virtualisation
GB2546731B (en) * 2016-01-20 2019-02-20 Advanced Risc Mach Ltd Recording set indicator
GB2546742B (en) * 2016-01-26 2019-12-11 Advanced Risc Mach Ltd Memory address translation management
US20170277903A1 (en) * 2016-03-22 2017-09-28 Qualcomm Incorporated Data Protection Using Virtual Resource Views
US10127068B2 (en) * 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
CN107783913B (zh) * 2016-08-31 2021-12-03 华为技术有限公司 一种应用于计算机的资源访问方法和计算机
US10089247B2 (en) * 2016-09-30 2018-10-02 Intel Corporation System and method for coupling a host device to secure and non-secure devices
US10394454B2 (en) * 2017-01-13 2019-08-27 Arm Limited Partitioning of memory system resources or performance monitoring
WO2018140758A1 (en) * 2017-01-26 2018-08-02 Semper Fortis Solutions, LLC Multiple single levels of security (msls) in a multi-tenant cloud
US10866909B2 (en) * 2017-06-26 2020-12-15 Intel Corporation Technologies for protecting virtual machine memory
CN110036377B (zh) * 2017-06-28 2023-06-02 辉达公司 可缓存的但不可通过推测指令访问的内存类型
US10599461B2 (en) * 2017-09-19 2020-03-24 Microsoft Technology Licensing, Llc Nested hypervisor memory virtualization
US10929308B2 (en) * 2017-11-22 2021-02-23 Arm Limited Performing maintenance operations
GB2570692B (en) * 2018-02-02 2020-09-09 Advanced Risc Mach Ltd Controlling guard tag checking in memory accesses
US10761855B2 (en) 2018-05-02 2020-09-01 Micron Technology, Inc. Securing conditional speculative instruction execution
US11275587B2 (en) * 2018-05-02 2022-03-15 Micron Technology, Inc. Static identifications in object-based memory access
CN108830114B (zh) * 2018-05-23 2020-07-07 广东高云半导体科技股份有限公司 非易失性存储器的数据处理方法与装置、存储介质
GB2576528B (en) * 2018-08-22 2021-06-23 Advanced Risc Mach Ltd Performing address translation on predicted virtual memory address
US11481241B2 (en) * 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
GB2578099B (en) * 2018-10-15 2021-05-12 Advanced Risc Mach Ltd Memory access control
US10534730B1 (en) * 2018-12-20 2020-01-14 Ati Technologies Ulc Storing microcode for a virtual function in a trusted memory region
US11373013B2 (en) * 2018-12-28 2022-06-28 Intel Corporation Technologies for filtering memory access transactions received from one or more I/O devices
GB2582736B (en) * 2019-02-01 2022-02-16 Arm Ip Ltd Template-based registration
GB2580968B (en) 2019-02-01 2021-08-04 Advanced Risc Mach Ltd Lookup circuitry for secure and non-secure storage
US11403409B2 (en) * 2019-03-08 2022-08-02 International Business Machines Corporation Program interruptions for page importing/exporting
US11455398B2 (en) * 2019-03-08 2022-09-27 International Business Machines Corporation Testing storage protection hardware in a secure virtual machine environment
US11176054B2 (en) * 2019-03-08 2021-11-16 International Business Machines Corporation Host virtual address space for secure interface control storage
US11308215B2 (en) * 2019-03-08 2022-04-19 International Business Machines Corporation Secure interface control high-level instruction interception for interruption enablement
US11068310B2 (en) 2019-03-08 2021-07-20 International Business Machines Corporation Secure storage query and donation
US11487906B2 (en) 2019-03-08 2022-11-01 International Business Machines Corporation Storage sharing between a secure domain and a non-secure entity
US11640361B2 (en) * 2019-03-08 2023-05-02 International Business Machines Corporation Sharing secure memory across multiple security domains
US11531627B2 (en) 2019-03-08 2022-12-20 International Business Machines Corporation Secure storage isolation
US11182192B2 (en) 2019-03-08 2021-11-23 International Business Machines Corporation Controlling access to secure storage of a virtual machine
US11283800B2 (en) * 2019-03-08 2022-03-22 International Business Machines Corporation Secure interface control secure storage hardware tagging
US11347869B2 (en) 2019-03-08 2022-05-31 International Business Machines Corporation Secure interface control high-level page management
US11206128B2 (en) 2019-03-08 2021-12-21 International Business Machines Corporation Secure paging with page change detection
GB2593485B (en) * 2020-03-24 2022-06-15 Advanced Risc Mach Ltd Apparatus and method using plurality of physical address spaces
CN112099904B (zh) * 2020-08-25 2024-05-17 海光信息技术股份有限公司 一种虚拟机的嵌套页表管理方法、装置、处理器芯片及服务器
CN112612574B (zh) * 2020-12-18 2023-09-26 海光信息技术股份有限公司 输入输出设备的内存访问管理单元、系统及地址转换方法
CN113886288A (zh) * 2021-09-29 2022-01-04 南方科技大学 基于arm架构的资源访问控制方法、系统、设备及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522075A (en) * 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
JP3874603B2 (ja) 2000-11-21 2007-01-31 株式会社日立製作所 計算機システムの共有メモリ構築方法
JP2002182560A (ja) 2000-12-12 2002-06-26 Hitachi Ltd 暗号処理機能を備えた情報サーバ装置
US20030079103A1 (en) * 2001-10-24 2003-04-24 Morrow Michael W. Apparatus and method to perform address translation
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
EP1563388A2 (en) 2002-11-18 2005-08-17 ARM Limited Secure memory for protecting against malicious programs
US7171539B2 (en) 2002-11-18 2007-01-30 Arm Limited Apparatus and method for controlling access to a memory
RU2005115083A (ru) 2002-11-18 2006-01-20 Арм Лимитед (Gb) Переключение процессора между защищенным и незащищенным режимами
GB2396930B (en) * 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
GB2395313B (en) 2002-11-18 2005-11-23 Advanced Risc Mach Ltd Task following between multiple operating systems
US7380276B2 (en) * 2004-05-20 2008-05-27 Intel Corporation Processor extensions and software verification to support type-safe language environments running with untrusted code
US7590867B2 (en) 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
JP2006120089A (ja) 2004-10-25 2006-05-11 Ntt Docomo Inc データ管理システム及びデータ管理方法
US20060112212A1 (en) * 2004-11-23 2006-05-25 Hob Gmbh & Co. Kg Virtual machine computer system for running guest operating system on a central processing means virtualized by a host system using region ID virtual memory option
US7409719B2 (en) * 2004-12-21 2008-08-05 Microsoft Corporation Computer security management, such as in a virtual machine or hardened operating system
US7395405B2 (en) * 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US7428626B2 (en) * 2005-03-08 2008-09-23 Microsoft Corporation Method and system for a second level address translation in a virtual machine environment
EP1736887A3 (fr) * 2005-05-31 2009-04-22 Stmicroelectronics Sa Repertoire de pages memoire
US20070061535A1 (en) 2005-09-12 2007-03-15 Microsoft Corporation Processing unit enclosed operating system

Also Published As

Publication number Publication date
US8418175B2 (en) 2013-04-09
GB0803830D0 (en) 2008-04-09
JP2009211698A (ja) 2009-09-17
US20090222816A1 (en) 2009-09-03
CN101520753B (zh) 2013-03-20
CN101520753A (zh) 2009-09-02
GB2460393A (en) 2009-12-02
GB2460393B (en) 2012-03-28

Similar Documents

Publication Publication Date Title
JP5234794B2 (ja) データ処理装置および処理回路上で実行される仮想機械によるセキュア・メモリへのアクセス制御方法
EP2537097B1 (en) Storing secure mode page table data in secure and non-secure regions of memory
US8296538B2 (en) Storing secure mode page table data in secure and non-secure regions of memory
KR101799261B1 (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
CN105938459B (zh) 处理地址转换请求
US9298639B2 (en) Controlling access to groups of memory pages in a virtualized environment
US9218302B2 (en) Page table management
US7401358B1 (en) Method of controlling access to control registers of a microprocessor
US7130977B1 (en) Controlling access to a control register of a microprocessor
US20090216929A1 (en) System, method and computer program product for providing a programmable quiesce filtering register
JP2007183952A (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
US7082507B1 (en) Method of controlling access to an address translation data structure of a computer system
US10664304B2 (en) Application memory protection using an extended page table switching virtual machine function
JP7002455B2 (ja) メモリアドレス変換管理
JP7425786B2 (ja) メモリ・アクセス制御
KR20230101826A (ko) 캐퍼빌리티들을 사용하여 메모리에 대한 액세스를 제약하기 위한 기술
TW202420076A (zh) 基於指令提取位址的區域識別符
KR20240004738A (ko) 캐퍼빌리티를 사용하여 메모리에 대한 액세스를 제약하기 위한 기술

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130304

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130321

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5234794

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160405

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250