(57)【要約】  データ処理システム２は、ロードストアユニット１２を制御するための制御信号を生成するために、保護されたメモリアクセス命令（ＬＤＲ／ＳＴＲ）およびより保護されていないメモリアクセス命令（ＬＤＮＰＲ／ＳＴＮＰＲ）をデコードする命令デコーダ１０を含む。より保護されていないメモリアクセス命令は、保護されたメモリアクセス命令よりも制限の少ないメモリアクセス条件に関連付けられる。一例として、より保護されていないメモリアクセス命令は共有メモリ領域２６，２８にアクセスするために使用され、保護されたメモリアクセス命令はそのような共有領域にアクセスするために使用されない。反対に、より保護されていないメモリアクセス命令は、プライベートメモリ領域３０，３２，３４にアクセスするために使用されない。
2018535483.tif 000002
【特許請求の範囲】
【請求項１】
データを処理するための装置であって、
プログラム命令によって指定された処理動作を実行する処理回路と、そして
メモリアクセス命令をデコードしてメモリアクセス動作を実行するように前記処理回路を制御する制御信号を生成するデコーダと、を含み、
前記メモリアクセス命令は、
保護されたメモリアクセス動作に対応する保護されたメモリアクセス命令と、そして
より保護されていないメモリアクセス動作に対応するより保護されていないメモリアクセス命令と、
を指定するそれぞれのエンコードを有し、そして
前記より保護されていないメモリアクセス動作は、前記保護されたメモリアクセス動作よりもより制限の少ないメモリアクセス条件に関連付けられている、装置。
【請求項２】
前記より保護されていないメモリアクセス命令は、前記保護されたメモリアクセス命令とは異なる数の変形を許可するエンコードを有する、請求項１に記載の装置。
【請求項３】
前記より保護されていないメモリアクセス命令は、前記保護されたメモリアクセス命令よりも少ない変形を許可するエンコードを有する、請求項２に記載の装置
【請求項４】
メモリ保護データに依存してメモリアドレス空間の領域へのアクセスを制御するメモリアクセス制御回路を含み、前記メモリ保護データは、前記保護されたメモリアクセス命令よりも前記より保護されていないメモリアクセス命令により制限の少ないメモリアクセス条件を強制するように前記メモリアクセス制御回路によって適用される少なくとも１つの属性を含む、請求項１乃至３のいずれか一項に記載の装置。
【請求項５】
前記少なくとも１つの属性は、メモリアドレスが共有メモリアドレスであることを示し、
前記メモリアクセス制御回路は、前記保護されたメモリアクセス命令による前記共有メモリアドレスへのメモリアクセスをブロックし、そして
前記メモリアクセス制御回路は、前記より保護されていないメモリアクセス命令による前記共有メモリアドレスへのメモリアクセスを許可する、請求項４に記載の装置。
【請求項６】
前記少なくとも１つの属性は、メモリアドレスがプライベートメモリアドレスであることを示し、
前記メモリアクセス制御回路は、前記保護されたメモリアクセス命令による前記プライベートメモリアドレスへのメモリアクセスを許可し、そして
前記メモリアクセス制御回路は、前記より保護されていないメモリアクセス命令による前記プライベートメモリアドレスへのメモリアクセスをブロックする、請求項５に記載の装置。
【請求項７】
前記メモリアクセス制御回路は、データアボート応答をトリガするために、保護されたメモリアクセス命令による前記共有メモリアドレスへの試みられたメモリアクセスに応答する、請求項５及び６のいずれか一項に記載の装置。
【請求項８】
前記メモリアクセス制御回路は、データアボート応答をトリガするために、より保護されていないメモリアクセス命令による共有メモリアドレス以外への試みられたメモリアクセスに応答する、請求項５，６及び７のいずれか一項に記載の装置。
【請求項９】
前記メモリアクセス制御回路はメモリ管理ユニットであり、前記メモリ保護データはメモリページテーブルデータである、請求項４及び８のいずれか一項に記載の装置。
【請求項１０】
前記メモリアクセス制御回路はメモリ保護ユニットであり、前記メモリ保護データは前記メモリ保護ユニットのためのメモリ領域構成データである、請求項４及び８のいずれか一項に記載の装置。
【請求項１１】
前記保護されたメモリアクセス動作によってメモリに記憶されたデータを暗号化し、前記保護されたメモリアクセス動作によって前記メモリから読み出されたデータを復号化する暗号化回路を含む、請求項１乃至１０のいずれか一項に記載の装置。
【請求項１２】
メモリに記憶されたデータを暗号化し、前記メモリから読み出されたデータを復号するための暗号化回路を含み、前記暗号化回路は前記保護されたメモリアクセス動作に対してアクティブであり、そして前記暗号化回路は前記より保護されていないメモリアクセス動作に対しては非アクティブである、請求項１から１０のいずれか一項に記載の装置。
【請求項１３】
前記処理回路は、複数の例外レベル状態を有し、前記複数の例外レベル状態の内の所定の例外レベル状態で実行するプログラム内のより保護されていないメモリアクセス命令でアクセスされるメモリアドレスは、前記複数の例外レベル状態の内の選択可能な数のさらなる例外レベル状態で実行するプログラムと共有される、請求項１乃至１２のいずれか一項に記載の装置。
【請求項１４】
前記処理動作は、
複数のプログラムを実行するステップと、
前記複数のプログラムの所定のプログラム内の保護されたメモリアクセス命令を実行して、前記所定のプログラムに専用のメモリアドレスをアクセスするステップと、そして
前記複数のプログラムの間で共有されるメモリアドレスにアクセスするために、前記複数のプログラムのうちの前記所定のプログラム内のより保護されていないメモリアクセス命令を実行するステップと、を含む、
請求項１乃至１３のいずれかに一項に記載の装置。
【請求項１５】
前記複数のプログラムは、特権プログラムと、前記特権プログラムによって提供される実行環境を使用して実行する少なくとも１つのさらなるプログラムとを含み、前記少なくとも１つのさらなるプログラムは、前記特権プログラムからプライベートなメモリアドレスにアクセスするために保護されたメモリアクセス命令を使用する、請求項１４に記載の装置。
【請求項１６】
前記特権プログラムはハイパーバイザプログラムであり、前記少なくとも１つのさらなるプログラムはオペレーティングシステムプログラムである、請求項１５に記載の装置。
【請求項１７】
前記特権プログラムはオペレーティングシステムプログラムであり、前記少なくとも１つのさらなるプログラムはアプリケーションプログラムである、請求項１５に記載の装置。
【請求項１８】
データを処理するための装置であって、
プログラム命令によって指定された処理動作を実行する処理手段と、そして
メモリアクセス動作を実行するように前記処理手段を制御する制御信号を生成するためにメモリアクセス命令をデコードするデコーダ手段と、を含み、
前記メモリアクセス命令は、
保護されたメモリアクセス動作に対応する保護されたメモリアクセス命令と、そして
より保護されていないメモリアクセス動作に対応するより保護されていないメモリアクセス命令と、を指定するそれぞれのエンコードを有し、そして
前記より保護されていないメモリアクセス動作は、前記保護されたメモリアクセス動作よりもより制限の少ないメモリアクセス条件に関連付けられている、装置。
【請求項１９】
データを処理する方法であって、
メモリアクセス動作を実行するように処理回路を制御するための制御信号を生成するためにメモリアクセス命令をデコードすることを含み、
前記メモリアクセス命令は、
保護されたメモリアクセス動作に対応する保護されたメモリアクセス命令と、そして
より保護されていないメモリアクセス動作に対応するより保護されていないメモリアクセス命令と、を指定するそれぞれのエンコードを有し、そして
前記より保護されていないメモリアクセス動作は、前記保護されたメモリアクセス動作よりもより制限の少ないメモリアクセス条件に関連付けられている、方法。
【請求項２０】
請求項１乃至１８のいずれか一１項に記載の装置に対応する仮想マシン実行環境を提供するようにコンピュータを制御するための、非一時的な記憶媒体に格納されたコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ処理システムの分野に関する。より具体的には、本開示は、データ処理システム内のメモリアクセス命令、およびそれらのメモリアクセス命令に関連するアクセス条件に関する。
【背景技術】
【０００２】
デコードされるとメモリとプロセッサコア間で、データロードまたはデータストアなどのような、メモリアクセス動作を実行するのに役立つメモリアクセス命令をデータ処理システムに提供することが知られている。このようなシステム内のメモリアクセス条件を管理するために、メモリ管理ユニットまたはメモリ保護ユニットのようなハードウェアを提供することが知られている。これらは、例えば、特定のメモリアドレスまたはメモリアドレスの範囲が、読み取り専用、読み取り／書き込み、特権アクセスのみ、などとしてマークされ得る、メモリアクセスを制御するために使用される許可データ（パーミッションデータ(permission data)）でプログラムされている。
【発明の概要】
【０００３】
本開示の少なくともいくつかの実施形態は、データを処理するための装置を提供し、
プログラム命令によって指定された処理動作を実行するための処理回路と、そして
メモリアクセス命令をデコードしてメモリアクセス動作を実行するように前記処理回路を制御する制御信号を生成するデコーダと、を含み、
前記メモリアクセス命令は、
保護されたメモリアクセス動作に対応する保護されたメモリアクセス命令と、
より保護されていないメモリアクセス動作に対応するより保護されていないメモリアクセス命令と、
を指定するそれぞれのエンコードを有し、
前記より保護されていないメモリアクセス動作は、前記保護されたメモリアクセス動作よりもより制限の少ないメモリアクセス条件に関連付けられている。
【０００４】
本開示の少なくともいくつかの実施形態は、データを処理するための装置を提供し、
プログラム命令によって指定された処理動作を実行する処理手段と、そして
メモリアクセス動作を実行するように前記処理手段を制御する制御信号を生成するためにメモリアクセス命令をデコードするデコーダ手段と、を備え、
前記メモリアクセス命令は、
保護されたメモリアクセス動作に対応する保護されたメモリアクセス命令と、そして
より保護されていないメモリアクセス動作に対応するより保護されていないメモリアクセス命令と、
を指定するそれぞれのエンコードを有し、そして
前記より保護されていないメモリアクセス動作は、前記保護されたメモリアクセス動作よりもより制限の少ないメモリアクセス条件に関連付けられている。
【０００５】
本開示の少なくともいくつかの実施形態は、データを処理する方法であって、
メモリアクセス動作を実行するように処理回路を制御するための制御信号を生成するためにメモリアクセス命令をデコードすること、を含み、ここで
前記メモリアクセス命令は、
保護されたメモリアクセス動作に対応する保護されたメモリアクセス命令と、そして
より保護されていないメモリアクセス動作に対応するより保護されていないメモリアクセス命令と、
を指定するそれぞれのエンコードを有し、
前記より保護されていないメモリアクセス動作は、前記保護されたメモリアクセス動作よりもより制限の少ないメモリアクセス条件に関連付けられている。
例示的な実施形態を、添付の図面を参照して、単なる例として以下に説明する。
【図面の簡単な説明】
【０００６】
【図１】図１は、データ処理システムを概略的に示す図である。
【図２】図２は、保護されたメモリアクセス命令とより保護されていないメモリアクセス命令を概略的に示す図である。
【図３】図３は、図２のメモリアクセス命令のための命令エンコードを概略的に示す図である。
【図４】図４は、共有／プライベートフラグを含むメモリ管理ユニットのページエントリを概略的に示す図である。
【図５】図５は、メモリアクセス処理を概略的に示すフロー図である。
【図６】図６は、メモリの領域でデータを暗号化するための暗号化回路を組み込んださらなる例示的な実施形態を概略的に示す図である。
【図７】図７は、異なる例外レベルで実行される特権プログラムとより低い特権プログラムの階層を概略的に示す図である。
【図８】図８は、メモリシステム階層および暗号化回路内の複数の層（レイヤー）を含むデータ処理システムのさらなる例示的実施形態を概略的に示す図である。
【発明を実施するための形態】
【０００７】
図１は、プロセッサコア４およびメモリ６を含むデータ処理システム２を概略的に示す。プロセッサコア４は、命令フェッチユニット８、デコーダ１０、ロードストアユニット１２、メモリ管理ユニット１４、レジスタバンク１６、乗算器１８と、シフタ２０と、加算器２２とを含む演算処理回路を含む。動作中、命令フェッチユニット８は、メモリ６からプログラム命令をフェッチし、これらをデコーダ１０に渡す。デコーダ１０は、プログラム命令をデコードし、制御信号を生成し、制御信号はその後、ロードストアユニット１２および演算処理回路１８，２０，２２など、処理回路の他の要素によって実行される処理動作を制御するために使用される。
【０００８】
レジスタバンク１６内のレジスタとメモリ６内のメモリアドレスとの間のロード命令およびストア命令から生じるようなメモリアクセス動作は、ロードストアユニット１２によって実行される。デコーダ１０によって生成された制御信号は、デコードされたメモリアクセス命令によって指定されるメモリアクセス動作を実行するようにロードストアユニット１２を制御する。メモリ管理ユニット１４は、メモリ６内に格納されたページテーブルデータ２４を使用して、メモリ６内のメモリアドレス（またはメモリページのようなメモリアドレスの領域）に関連するアクセス条件を強制する。これらのメモリアクセス条件は、特定のメモリアドレスが読出し可能であるが、書込みにはアクセスできず、キャッシュ可能であり、特定の特権レベル（特定の例外レベルのみ）または他の属性のみにアクセス可能であることを含み得る。
【０００９】
メモリ６は、本例に示すように、複数の領域にデータを格納し得る。これらの領域は、共有領域２６，２８およびプライベート領域３０，３２，３４を含むことができる。共有領域２６，２８は、プログラム間で共有され、したがって、プログラム間のデータの共有／交換を容易にすることができる。プライベート領域３０，３２，３４は、特定のプログラムに対してプライベートである。このプライバシは、プライベート領域３０，３２，３４のプライベートアクセスを有するプログラムよりも高い特権レベルを有するプログラムに対して強制することができる。したがって、アプリケーションプログラムは、そのアプリケーションプログラムについてアクセス可能であるが、上位オペレーティングシステムまたはより低いレベルの特権（例外レベル）でプログラムに実行環境を提供しているハイパーバイザプログラムなどの、より高いレベルの特権（例外レベル）で動作するプログラムについてアクセスできないプライベートメモリ領域３０，３２，３４を有することができる。
【００１０】
図１に示される例は、メモリ管理ユニット１４およびページテーブルデータ２４を利用する。この技術分野の当業者は、他の実施形態では、メモリアドレス空間内のメモリ保護領域に関連するアクセス条件を適用するメモリ保護ユニットなどの、異なるメモリアクセス制御回路を利用することができるであろう。
【００１１】
メモリ管理ユニット１４（およびメモリ保護ユニット）の使用に関連する潜在的なセキュリティ脆弱性は、ページテーブルデータ２４（またはメモリ領域を定義するデータおよびメモリ保護ユニットを保護するデータ）に対する誤ったまたは悪意のある変更によりプライベートとして扱われるべきメモリ領域３０，３２，３４が代わりに共有として扱われ、そして他のアプリケーションプログラムに不適切にアクセスが与えられることである。そのようなプライベート領域３０，３２，３４は、暗号キー、財務データなどの機密データを含み得る。
【００１２】
本例に従って提供されるメモリアクセス命令は、保護されたロード命令、ＬＤＲ、または保護されたストア命令ＳＴＲのような保護されたメモリアクセス命令の形式をとる。メモリアクセス命令は、より保護されていないロード命令ＬＤＮＰＲまたはより保護されていないストア命令ＳＴＮＰＲのような、より保護されていないメモリアクセス命令をさらに含む。これらは独自の命令エンコードを持つ個別のタイプの命令である。１つのタイプのエンコードのすべての変形が、他のタイプのエンコードのために提供される必要はない。この例示的な実施形態では、保護されたメモリアクセス命令は、より保護されていないメモリアクセス命令よりも多くの変種をそのエンコードに有し、例えば、保護されたメモリアクセス命令は、データ値のサイズ、符号付き／符号なしデータ、メモリアドレスに適用されるインデックス付けを可能にするオプション及び他のオプションを有する。これに対して、より保護されていないメモリアクセス命令では、データサイズや符号付き／符号なしデータなど、より少ないオプションを有する。
【００１３】
異なるタイプのメモリアクセス命令を提供することにより、プログラマ（またはコンパイラ）はデフォルトで保護されたメモリアクセス命令を使用し、そして、プログラマが知っているより制限の少ないメモリアクセス条件に安全に従うことができる特定のメモリアクセス動作のためにより保護されていないメモリアクセス命令の使用を選択することを可能とする。例えば、保護されたメモリアクセス命令は、メモリ６内の共有領域２６，２８になされることが意図されているようにプログラマによって知られているもの以外のすべてのメモリアクセスに対して、デフォルトで使用されてもよい。共有領域に対するこれらのメモリアクセスは、より保護されていないメモリアクセス命令を使用することができる。プログラムコードを書く時のプログラマは、あるデータが他のアプリケーションプログラムと共有され、共有領域２６，２８に書き込まれることを知っているので、このようなメモリアクセスは、より保護されていないメモリアクセス命令を使用して実行されることが適切である。このように、メモリ管理ユニット１４（またはメモリ保護ユニット）を制御するデータが不正確であっても、より制限されたメモリアクセス条件を有する保護されたメモリ命令の使用は、プログラムが不注意にデータを共有領域２６，２８に格納し、または共有領域２６，２８からデータ（変更されている可能性がある）を不注意にロードすることを防止することに役立つ。
【００１４】
図３は、保護されたメモリアクセス命令ＬＤＲ／ＳＴＲとより保護されていないメモリアクセス命令ＬＤＮＰＲ／ＳＴＮＰＲの両方のエンコード例を概略的に示す。これらの命令は異なるエンコード（オペコード）を有しており、デコーダ１０によって異なるタイプの命令として認識され、デコーダ１０は、したがって、ロードストアユニット１２を制御して、以下にさらに説明するように、これらの異なるタイプの命令に関して異なって振る舞うように、異なる制御信号を生成する。保護されたメモリアクセス命令ＬＤＲ／ＳＴＲは、図示されているように、より保護されていないメモリ命令ＬＤＮＰＲ／ＳＴＮＰＲよりも、サイズ、符号付き／符号なし、インデックス付けなどのより関連したオプションを有する。プログラム命令はさらに、メモリアクセス命令が関連し、例えばメモリ６内の目標メモリアドレスを含むことができるレジスタバンク１６内のレジスタなどのパラメータを指定する。より保護されていないメモリアクセス命令に対するオプションの数を少なくすると、命令セットのビットスペースが少なくなるという結果が得られる。これは、プロセスまたはアーキテクチャ内の有限のリソースであり、他の場所でも有益に使用される可能性がある。実際には、共有を要求するためにプログラマによって知られているデータに関するメモリアクセス動作は比較的稀である傾向があり、したがって、そのようなより保護されていないメモリアクセス命令の場合、コードサイズが過度に増加することはなく、命令セットのビットスペースの節約以上に優れている。
【００１５】
図４は、メモリ管理ユニット・ページ・テーブル・エントリ３６を概略的に示す。このようなページ・テーブル・エントリは、多種多様な異なる形態を有することができる。典型的には、このようなメモリ管理ユニットページテーブルエントリ３６は、仮想アドレスＴＡＧ３８および対応する物理アドレス変換データ４０を使用して、仮想アドレスと物理アドレスとの間のアドレス変換をサポートする。また、ページエントリに関連するメモリアドレス空間内の各ページ（領域）には、可読性、書き込み可能性、特権レベルアクセス制限、キャッシュ能力などの特性を定義するメモリページ属性が関連付けられる。また、メモリページ属性データ内には、その領域内のメモリアドレスが共有かプライベートかを示す共有／プライベートフラグが含まれる。共有アドレスは複数のプログラムで共有されるが、プライベートアドレスは１つのプログラムからのみアクセスできる。他の形態のメモリページ属性は、特定の領域が暗号化されているか否かを示すフラグを含むことができる。暗号化された領域は、暗号化キーを使用して暗号化され、次に適切な復号化キーを所有する適切に認可されたプログラムによって解読される。
【００１６】
共有／プライベートフラグの場合、共有としてマークされたメモリ領域は、より保護されていないメモリアクセス命令によってのみアクセスされるべきであり、同様に、プライベートとしてマークされるメモリ領域は、保護されたメモリアクセス命令によってのみアクセスされるべきである。誤ったタイプ（エンコード）のメモリアクセス命令がメモリのある領域にメモリアクセスを試みると、これが検出され、データアボート（トリガメモリアクセス例外処理）を発生する。
【００１７】
図５は、メモリアクセス処理の一形態を概略的に示すフロー図である。ステップ４２において、処理は、しばしば、メモリアクセス命令がデコードされるまで待機する。メモリアクセス命令がデコードされると、メモリ管理ユニット１８と協働して指定されたメモリアクセス動作を実行するようにロードストアユニット１２を制御するために、デコーダ１０によって制御信号が生成される。ステップ４４では、ステップ４２でデコードされたメモリアクセス命令の共有フラグデータ（および他のデータ）が読み出される。ステップ４６で、ステップ４２でデコードされたメモリアクセス命令が保護されたメモリアクセス命令であったかどうかを判定する。ステップ４２でデコードされた命令が保護されたメモリアクセス命令であった場合、処理はステップ４８に進み、そこではステップ４４で読み出された共有フラグが、アクセスされるべきメモリアドレスを含むメモリ領域が共有であることを示しているかどうかについて判定が行われる。ステップ４８の判定でメモリ領域が共有されていると判定された場合、これは保護されたメモリアクセス命令が適切に使用されていることを示し、それに応じて処理がステップ５０に進み、そこではアクセスがブロックされ、その後ステップ５２でデータアボート応答がトリガされてから、ステップ４２に処理が戻される。ステップ４８でメモリアクセスが共有領域ではないと判定された場合、保護されたメモリアクセス命令の使用は適切ではない（すなわちメモリ領域はプライベートである）ので、ステップ５４でアクセスが許可され、実行される。ステップ４６における判定が、ステップ４２でデコードされたメモリアクセス命令がより保護されていないメモリアクセス命令である場合、処理はステップ５６に進み、ステップ４４で読み出された共有フラグが、より保護されていないメモリアクセス命令に関連するメモリアドレスが共有されることを示すか否かが判定される。メモリ領域が共有されていない場合、より保護されていないメモリアクセス命令の使用は不適切であることを示し、処理はメモリアクセスがブロックされるステップ５８と、データアボート応答がトリガされるステップ６０に進む。ステップ５６でメモリ領域が共有されていると判定された場合、ステップ４２でデコードされたより保護されていないメモリアクセス命令の使用が適切であり、したがって処理はステップ６２に進み、アクセスが許可される。
【００１８】
図６は、本技術を利用するデータ処理システム６４のさらなる例示的実施形態を概略的に示す。この例示的な実施形態では、メモリ６６内のメモリ領域は、暗号化領域６８，７０，７２または非暗号化領域７４，７６であってもよい。プロセッサコア８２とメモリ６６との間に配置された暗号化回路８０は、暗号化領域６８，７０，７２に書き込まれるデータを暗号化し、暗号化領域６８，７０，７２から読み出されるデータを復号化する機能を果たす。暗号化および復号化は、それぞれの暗号化された領域６８，７０，７２にアクセスするプログラムのプログラムにプライベートな暗号キー８４を使用する。
【００１９】
この例示的な実施形態では、メモリアクセス制御回路は、メモリ６６のメモリアドレス空間内の異なる領域が暗号化されるか暗号化されないかのいずれかとしてマークされたメモリ保護ユニット８６の形態をとる。メモリ領域が暗号化されると、マルチプレクサ８８，９０は、暗号化回路８０を介してデータをルーティングするように切り替えられて使用される。アクセスされるメモリアドレスが暗号化されていない領域内にある場合、暗号化回路８０は、マルチプレクサ８８，９０によってバイパスされる。暗号化回路８０は、保護されたメモリアクセス命令のために使用されアクティブであり、より保護されていないメモリアクセス命令のためにバイパスされるようにしてもよい。暗号化されていない領域７４，７６はプログラム間で共有されてもよく、暗号化された領域６８，７０，７２は個別のプログラム又は暗号キーを共有する多くのプログラムに対して専用であってもよい。より保護されていないメモリアクセス命令が、メモリ保護ユニット８６によって暗号化されたとしてマークされたメモリアクセスに関して使用される場合、データアボートがトリガされ得る。同様に、より保護されていないメモリアクセス命令が、暗号化されていない領域内のメモリアドレスに対して使用される場合、データアボートがトリガされてもよい。
【００２０】
図７は、異なる特権／例外レベルで動作するプログラムの階層を概略的に示す。プログラムは、より低いレベルの特権（より低い例外レベル）で動作するゲストオペレーティングシステムプログラム９４，９６に実行環境を提供するハイパーバイザプログラム９２を最高の特権レベルで含むことができる。各オペレーティングシステムプログラム９４，９６は、それぞれ、アプリケーションプログラム９８，１００、またはアプリケーションプログラム１０２，１０４のための実行環境を提供することができる。オペレーティングシステムプログラム９４，９６は、アプリケーションプログラム９８，１００，１０２，１０４よりも高いレベルの特権（例外レベル）で動作する。
【００２１】
前述の例示的な実施形態は、保護されたメモリアクセス命令およびより保護されていないメモリアクセス命令およびより保護されていないメモリアクセス命令に関連して、共有／プライベートフラグまたは暗号化／非暗号化フラグを使用してアクセスを制御している。さらなる実施形態は、プログラムが実行される特権レベル（例外レベル）に関連するメモリアクセス条件を課すように働くことができる。プログラマは、異なるレベル（特権レベル）で動作する１つ以上の他のプログラムとデータを共有することが適切であると判断することができる。一例として、アプリケーションプログラム９８，１００，１０２，１０４は、上にあるオペレーティングシステムプログラム９４，９６とデータを共有できるが、他のアプリケーションプログラムやハイパーバイザプログラム９２とはデータを共有できないように制御することができる。より保護されていないメモリアクセス命令は、他の例外レベルと共有することが望まれるそのようなデータに関連することができるが、他の例外レベルと共有したくないデータは、保護されたメモリアクセス命令を使用してアクセスすることができる。
【００２２】
図８は、本技術を利用するデータ処理システム１０６のさらなる例示的実施形態を概略的に示す。このデータ処理システム１０６は、メインメモリ１１４内の暗号化されたメモリ領域１０８，１１０および共有メモリ領域１１２を利用する。図６の実施形態と比較すると、図８の実施形態は、様々なレベルの階層を使用するメモリシステムを利用する。４つのプロセッサコア１１６，１１８，１２０，１２２の各々は、ローカルプライベートキャッシュメモリ１２４，１２６，１２８，１３０を有する。メモリ階層のこれらのローカルキャッシュ１２４，１２６，１２８および１３０の上には、共有キャッシュメモリ１３２がある。キャッシュメモリ１２４，１２６，１２８，１３０，１３２の各々内のデータは、暗号化／共有化としてマークされているかどうかにかかわらず、暗号化されていない形式で格納される。データを暗号化／共有化する場合は、キャッシュメモリ１２４，１２６，１２８，１３０，１３２内でフラグが立てられ、そのようなフラグの制御下で、暗号化回路１３４を介して、または暗号化回路の周りを（バイパスされて）マルチプレクサ１３６，１３８を使用して適切にルーティングされる。したがって、暗号化回路１３４よりもプロセッサコア１１６，１１８，１２０，１２２に近いデータは暗号化されていない形式で記憶され、したがって暗号化／復号化に関連するエネルギー／時間のペナルティは発生しない。一方、暗号化回路１３４よりもメモリ階層内の、すなわち相互接続部１４０を通過して主記憶装置１１４内に記憶される、データは暗号化される。グラフィックス処理ユニット１４２とダイレクトメモリアクセスユニット１４４も相互接続１４０を介して接続されている。
【００２３】
本発明の例示的な実施形態が、添付の図面を参照して本明細書において詳細に説明されているが、本発明は、それらの正確な実施形態に限定されず、添付の特許請求の範囲によって規定される本発明の範囲および趣旨から逸脱することなく、様々な変更および修正を当業者が行うことができる。
【図１】
2018535483.tif 000003
【図２】
2018535483.tif 000004
【図３】
2018535483.tif 000005
【図４】
2018535483.tif 000006
【図５】
2018535483.tif 000007
【図６】
2018535483.tif 000008
【図７】
2018535483.tif 000009
【図８】
2018535483.tif 000010
【国際調査報告】
2018535483.tif 000011
2018535483.tif 000012