説明

ハードウェアモードおよびセキュリティフラグに基づく、読み出される命令用のメモリエリアの制限

データを処理するための装置(2)は、プロセッサ(8)と、メモリ(6)と、メモリ制御回路(12)とを含む。プロセッサ(8)は、特権モードおよびユーザモードを含む、複数のハードウェアモードで動作する。特権モードで動作している際、プロセッサ(8)は、メモリ制御回路(12)によって、レジスタ(46)内のセキュリティフラグがこの遮断機構が有効であることを示すように設定されている場合にユーザモード内で書き込み可能である、メモリ(6)内のメモリアドレス領域(34、38、42)から命令をフェッチすることを遮断される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理システムの分野に関する。より具体的には、本発明は、複数のハードウェア動作モード、および現在のハードウェアモードに基づくメモリアクセスの制御を有する、データ処理システムに関する。
【背景技術】
【0002】
プロセッサが複数のハードウェア動作モードを有するデータ処理システムを提供することは、既知である。例えば、プロセッサは、特権モードおよびユーザモードを含む、ハードウェアモードで動作することができる。また、他の目的のためのさらなるハードウェアモードが存在し得る。特権モードは、通常、オペレーティングシステムカーネル等のより信頼性のあるプログラムコードに使用され、プロセッサがユーザモードで動作している際より多くのメモリエリアへのアクセスを有する。ユーザモードは、典型的に、アプリケーションプログラム等の前者に比べて信頼性のより少ないプログラムに使用される。このようにして、プロセッサの動作の現在のモードに敏感なメモリ管理ユニットまたはメモリ保護ユニットを使用することによって、プログラムからメモリの所定域への悪意のある、または不慮のアクセスが防止され得る、これは、プロセッサが特権モードではない場合にメモリの所定域にアクセスすることを防止する。そのようなシステム内におけるモデルは、特権動作モードが、ユーザモードより多くのシステム資源、例えば、メモリ内の域へのアクセスを有するというものである。
【0003】
1つの種類の生じる可能性がある悪意のあるセキュリティ攻撃、または不運な誤操作は、システムが、特権モードで実行している間に、ユーザモードで書き込み可能なメモリの域内に記憶されたプログラム命令を不適切に実行させられるというものである。このようにして、一例として、人は、悪意のあるプログラム命令をユーザモードでアクセス可能なメモリの域に書き込み、次いで、プロセッサを、ユーザモードでアクセス可能なメモリエリアから読み出される悪意のあるプログラム命令を実行している間に、メモリの保護領域へのアクセスが行われ得る、特権モードに切り替えることができる。
【発明の概要】
【課題を解決するための手段】
【0004】
一態様から見ると、本発明は、処理動作を実施するようにプログラム命令のストリームに応答する、プロセッサと、プロセッサおよびメモリに連結され、プロセッサによるメモリへのアクセスを制御するように構成された、メモリ制御回路と、を備え、プロセッサは、少なくとも第1のモードおよび第2のモードを含む、複数のハードウェア動作モードを有し、メモリ制御回路は、(i)プロセッサが第1のモードである際、メモリ制御回路が、メモリの第1の部分への書き込みアクセスを許可し、メモリの第2の部分への少なくとも書き込みアクセスを許可せず、(ii)プロセッサが第2のモードである際、メモリ制御回路が、メモリの第1の部分への書き込みアクセスを許可し、メモリの第2の部分への書き込みアクセスを許可するように、メモリへのアクセスを制御し、メモリ制御回路は、プロセッサが、第2のモードのプロセッサによる実行のためのプログラム命令をメモリの第1の部分から読み出すことを防止するように、設定値を有するセキュリティフラグに応答する、データを処理するための装置を提供する。
【0005】
本技法は、これらのプログラム命令がユーザモードで書き込まれ得るメモリの領域から読み込まれる際、システムが特権モードでプログラム命令を正当に実行する理由は、実際にはそれ程ないと認識する。特権モードで実行されるコードは、通常、特権モードでのみ書き込み可能なメモリ内に記憶される。これは、特権モードで実行されるプログラム命令を、不適切な不慮の改ざん、ならびに悪意のある改ざんから保護する。したがって、本技法は、プロセッサが、ユーザモードで書き込み可能であり得るメモリの域から、特権モードでの実行のためのプログラム命令を読み出すことを防止するために、メモリ制御回路を使用することによって、特権モードにユーザモードより多くのアクセス権を与えるこの分野の一般的な技術的偏見に対抗する。メモリ制御回路のこのアクションは、ハードウェアが、設計者がユーザモードで書き込み可能なメモリの域内に記憶されるプログラム命令を特権モードで実行することを望むシステムを支援することができ、一方、メモリ制御回路によって提供されるハードウェア施行機構を制御するセキュリティフラグを用いて、この能力をオフに切り替える、簡単な方法を提供するように、セキュリティフラグによって、グローバルにオンおよびオフを切り替えられてもよい。上記において、ハードウェアモードは、特権モードおよびユーザモードと称されてきたが、本技法は、そのようなモードを有するシステム内での使用に制限されず、より広くは、第1のモードおよび第2のモードを有するシステム内で使用されてもよく、第2のモードは、第1のモードより多くのメモリの領域へのアクセスを有し、依然として、第1のモードで書き込まれ得るメモリの領域から読み出されるプログラム命令を実行することを選択的に防止されることが理解される。
【0006】
メモリ制御回路は、第1の部分として、メモリ内の1つ以上のメモリアドレス領域を識別し、第2の部分として、メモリ内の1つ以上のメモリアドレス領域を識別するように、制御データに応答し得る。したがって、第1の部分および第2の部分は、メモリ内で連続している必要はなく、メモリ制御回路によって読み出される制御データによって定義されてもよい。いくつかの実施形態では、これは、メモリ管理ユニットによって読み出される、メモリページテーブルデータであってもよい。
【0007】
本技法は、第1のモードがアプリケーションプログラムを実行するためのユーザモードであり、第2のモードが少なくともオペレーティングシステムカーネルプログラムを実行するための特権モードであるシステムにおいて、特に有用である。
【0008】
セキュリティフラグが設定値を有する際、第2のモードで動作しているプロセッサは、メモリ制御回路によって、データ値が、実行される命令としてフェッチされないが、代わりに、操作されるデータ値としてデータ経路にフェッチされるように、メモリの第1の部分からデータ値を読み出すことを許可されてもよい。
【0009】
メモリ制御回路は、様々な異なる形態をとることができることが理解される。メモリ制御回路のいくつかの例は、メモリ管理ユニットおよびメモリ保護ユニットである。
【0010】
セキュリティフラグは、便利に、プロセッサが第2のモードである際、プログラム命令制御下で書き込まれてもよく、セキュリティフラグは、プロセッサが第1のモードである際、プログラム命令制御下で書き込むことはできない。このようにして、第1のモードで動作している際にセキュリティフラグの値を変更することによって、セキュリティフラグによって提供されるセキュリティが回避され得ない。
【0011】
別の態様から見ると、本発明は、プログラム命令のストリームに応えて処理動作を実施するためのプロセッサ手段と、プロセッサ手段、およびプロセッサ手段によるメモリ手段へのアクセスを制御するためのデータを記憶するためのメモリ手段に連結された、メモリ制御手段回路と、を備え、プロセッサ手段は、少なくとも第1のモードおよび第2のモードを含む、複数のハードウェア動作モードを有し、メモリ制御手段は、(i)プロセッサ手段が第1のモードである際、メモリ制御手段が、メモリ手段の第1の部分への書き込みアクセスを許可し、メモリ手段の第2の部分への少なくとも書き込みアクセスを許可せず、(ii)プロセッサ手段が第2のモードである際、メモリ制御手段が、メモリ手段の第1の部分への書き込みアクセスを許可し、メモリ手段の第2の部分への書き込みアクセスを許可するように、メモリ手段へのアクセスを制御し、メモリ制御手段は、プロセッサ手段が、第2のモードのプロセッサ手段による実行のための前記プログラム命令をメモリ手段の前記第1の部分から読み出すことを防止するように、設定値を有するセキュリティフラグに応答する、データを処理するための装置を提供する。
【0012】
さらなる態様から見ると、本発明は、データを処理する方法であって、プログラム命令のストリームに応えて、プロセッサを用いて処理動作を実施するステップと、プロセッサおよびメモリに連結されたメモリ制御回路を使用して、プロセッサによるメモリへのアクセスを制御するステップと、を含み、プロセッサは、少なくとも第1のモードおよび第2のモードを含む、複数のハードウェア動作モードを有し、メモリ制御回路は、(i)プロセッサが第1のモードである際、メモリ制御回路が、メモリの第1の部分への書き込みアクセスを許可し、メモリの第2の部分への少なくとも書き込みアクセスを許可せず、(ii)プロセッサが第2のモードである際、メモリ制御回路が、メモリの第1の部分への書き込みアクセスを許可し、メモリの第2の部分への書き込みアクセスを許可するように、メモリへのアクセスを制御し、メモリ制御回路は、プロセッサが、第2のモードのプロセッサによる実行のためのプログラム命令をメモリの第1の部分から読み出すことを防止するように、設定値を有するセキュリティフラグに応答する、方法を提供する。
【0013】
本発明はまた、上記の特長を有するバーチャルマシンの形態で実装されてもよい。
【0014】
ここで、添付の図面を参照して、一例としてのみ、本発明の実施形態が説明され、図面は、以下の通りである。
【図面の簡単な説明】
【0015】
【図1】プロセッサおよびメモリを含むデータ処理システムを図式的に図示する。
【図2】プロセッサのハードウェアモード、読み出しが命令フェッチであるか否か、および読み出しがユーザモードでアクセス可能なメモリ位置からであるか否かに基づく、メモリ読み出し動作の制御を図式的に図示するフロー図である。
【図3】複数のハードウェア動作モード、ならびにそれらの関連付けられるアクセス権および典型的な用途を図式的に図示する。
【図4】バーチャルマシン実装を図式的に図示する。
【発明を実施するための形態】
【0016】
図1は、メモリ6に連結された集積回路4を含む、データ処理システム2を図式的に図示する。集積回路4は、プロセッサ8と、メモリインターフェース回路10と、メモリ管理ユニット12とを含む。プロセッサ8内には、プログラム命令Iの制御下でメモリ6からフェッチされるデータ値Dに対して処理動作を実施するためのデータ経路を形成する、汎用レジスタバンク14と、乗算器16と、シフタ18と、加算器20とが提供される。命令プリフェッチユニット22によってメモリ6からフェッチされるプログラム命令Iは、命令パイプライン24に供給される。命令パイプライン24は、データ経路14、16、18、20を、復号されるプログラム命令によって指定される所望の処理動作(単数または複数)を実施するように構成し、制御するための、データ経路14、16、18、20の制御信号を生成するように、命令復号器26を制御する。プロセッサ8は、典型的に、明確化のために図1からは省略されている、より多くの回路要素を含有することが当業者によって理解される。
【0017】
また、集積回路4内には、メモリインターフェース回路10およびメモリ管理ユニット12も含まれる。メモリインターフェース回路10は、集積回路4からメモリ6に送信される、メモリアクセス信号(読み出しであっても書き込みであってもよい)の生成に責任がある。これらのメモリアクセス信号は、メモリ6内の物理アドレスを使用する。この構成は、本技法が使用され得るシステムの実施例にすぎないが、プロセッサ8は、仮想アドレスを使用して動作する。メモリ管理ユニット12は、ページテーブルデータ30を使用して、仮想アドレスを物理アドレスに変換する。このページテーブルデータは、メモリ管理ユニット12の制御データである。メモリの最近アクセスされた領域のページテーブルデータは、メモリ管理ユニット12内の変換索引バッファ28内に記憶される。特定のメモリアクセスのページテーブルデータが変換索引バッファ28内に存在しない場合、メモリ6内のページテーブルデータ30の全記憶から、適切なページテーブルデータがフェッチされる。
【0018】
メモリ6は、メモリインターフェース回路10によって生成される物理アドレスを使用してアドレス指定される、メモリアドレス空間を提供する。メモリ6は、可能なメモリアドレス空間のすべてに対応する記憶域を提供しなくてもよい。メモリアドレス空間は、メモリアドレス領域32、34、36、38、40、42等に分割される。これらのメモリアドレス領域32〜42のそれぞれは、これらのメモリ領域へのアクセスを制御するためにメモリ管理ユニット12によって使用される、関連ページテーブルデータを有する。当業者によって理解されるように、このページテーブルデータは、プロセッサ8が特権モードで動作している場合、または特権モードもしくはユーザモードのいずれかで動作している場合に、関心のあるメモリアドレス領域にアクセスすること(読み出しのみ、または読み出し/書き込みのいずれか)ができるか否かを示すデータを含んでもよい。ページテーブルデータのこの部分は、変換索引バッファ28の一部として図示される、P/Uフラグデータ44によって示される。また、ページテーブルデータは、許可されるアクセスが読み出しのみであるか、または読み出し/書き込みであるかを示す、R/Wフラグデータ43も含む。図1に示されるテーブルは、異なるアクセス権にマップされる、P/Uフラグデータ44およびR/Wフラグデータ43の異なる値の一実施例を与える。メモリアドレス領域32、34、36、40は、共に、プロセッサ8がユーザモードである際に書き込み可能ではない、メモリ6の第2の部分を形成する。メモリアドレス領域32、36、および40は、特権モードでのみアクセス可能である。メモリアドレス領域34は、ユーザモードでは、読み出しのみアクセス可能であるが、ユーザモードでは、書き込むことができない。メモリアドレス領域38および42は、プロセッサがユーザモードである際に書き込まれ、読み出されてもよく、プロセッサ8が特権モードである際に書き込まれてもよく、プロセッサ8が特権モードである際にデータ値を読み出されてもよいが、プロセッサ8が特権モードである際に命令値を読み出すことができない、メモリ6の第1の部分を形成する。
【0019】
この挙動は、この例示の実施形態では、メモリ管理ユニット12によって施行される。メモリ管理ユニット12は、プロセッサ8が現在、特権モードであるか、またはユーザモードであるかを示す入力信号P/Uを、プロセッサ8から受信する。また、メモリ管理ユニット12は、実施されているメモリアクセスが、命令フェッチに関連するか、またはデータアクセス動作に関連するかを示す入力信号I/Dも、メモリインターフェース回路10から受信する。これらの入力信号およびメモリ管理ユニット12内のレジスタ46内に記憶されたセキュリティフラグの値を使用して、特権モードでのメモリ6の第1の部分38ならびに42から読み出されるプログラム命令の実行の防止が施行されてもよい。
【0020】
図2は、メモリ管理ユニット12の動作の部分を図式的に図示する、フロー図である。メモリ管理ユニット12は、メモリ保護ユニットの形態で提供することもできることが理解される。ステップ48で、処理は、メモリインターフェース回路10で、プロセッサ8からメモリ読み出し要求動作が受信されるまで待機する。次いで、ステップ50は、メモリ管理ユニット12へのP/U入力信号を使用して、プロセッサ8が現在特権モードであるか否かを判定する。プロセッサ8が特権モードではない場合、プロセッサ8は、この分かりやすい実施例では、ユーザモードであり、処理は、ステップ52に進む。ステップ52は、ページテーブルデータ30内で、読み出しアクセスが試みられているメモリアドレスが特権モードである際にのみアクセス可能であるとマークされているか否かを判定する。メモリアドレスが特権のみとマークされていない場合、処理は、読み出しアクセスが許可される、ステップ54に進む。しかしながら、メモリアドレスが特権のみアドレスとマークされている場合、ステップ56は、アクセスを防止する。
【0021】
ステップ50で、プロセッサ8が現在特権モードであると判定される場合、処理は、ステップ58に進む。ステップ58は、レジスタ46内に記憶されたセキュリティフラグが現在設定されているか否かを判定する。セキュリティフラグが設定されている(設定値を有する)場合、プロセッサ8がメモリ6の第1の部分38および42から読み出されるプログラム命令を実行することを許可しないというポリシーの施行が施行される。ステップ58で、セキュリティフラグが設定されていないと判定される場合、処理は、ステップ60に進み、そこでアクセスが許可される。
【0022】
ステップ58で、セキュリティフラグが設定されていると判定される場合、処理は、ステップ62に進み、実施されているアクセスが命令フェッチであるか、またはデータアクセスであるかについての判定が行われる。この判定は、メモリ管理ユニット12へのI/D入力信号を使用して行われてもよい。実施されているメモリアクセスがデータアクセスである場合、処理は、ステップ60に進み、この場合も同様にアクセスが許可される。しかしながら、ステップ58で、セキュリティフラグが設定されていると判定され、ステップ62で、アクセス動作が命令フェッチであると判定される場合、処理は、ステップ64に進み、関心のあるメモリアドレスが、読み出しアクセスが試みられているアドレスのページテーブルデータ(すなわち、P/Uフラグデータ44およびR/Wフラグデータ43)によって示される、メモリ6の第1の部分の一部分、すなわち、本実施例では、メモリ領域38および42のうちの1つであるか否かについての判定が行われる。メモリアドレスが第1の部分内ではない場合、命令フェッチ動作は、許可されない場合があり、処理は、ステップ60に進む。しかしながら、メモリ38および42の第1の部分からの命令フェッチ動作が試みられている場合、処理は、ステップ66に進み、関心のあるアクセスが防止される。
【0023】
ステップ56または66のいずれかにおいて等で、メモリアクセスが防止される際、メモリアボート例外処理プログラムコードが実行されるように、メモリアボートがトリガされてもよい。この種類のメモリアボート処理は、当業者によく知られている。
【0024】
図3は、プロセッサ8の複数のハードウェアモード(またはバーチャルマシン実装において、そのようなハードウェアモードを模倣するモード)を図式的に図示する。本実施例では、2つのモード、すなわち、特権モードおよびユーザモードのみが図示されている。本技法は、より大きな数のモードを有するプロセッサを用いて使用されてもよいことが理解される。特権モードは、特権とマークされたメモリアドレス領域への読み出しのみ、または読み出し/書き込みアクセスのいずれかを許可する。また、特権モードは、データ経路を介した、ユーザモードが読み出し/書き込みアクセス可能とマークされたメモリアドレス領域への読み出しのみ、または読み出し/書き込みアクセスのいずれかも可能にする。特権モード内で、レジスタ46内のセキュリティフラグが設定される場合、ユーザモードが読み出し/書き込みアクセス可能なメモリからの命令の実行は、許可されない。しかしながら、上記の特権メモリへの読み出しのみ、または読み出し/書き込みアクセスは、特権モードである際、特権メモリからフェッチされる命令が実行されることを許可する。
【0025】
ユーザモードで実行している際、特権モードメモリアドレス領域とマークされたメモリアドレス領域への読み出しのみ、または読み出し/書き込みアクセスは許可されない。しかしながら、ユーザモードメモリアドレス領域とマークされたメモリアドレス領域への読み出しのみ、または読み出し/書き込みアクセスは許可される。
【0026】
異なる種類のプログラムは、典型的に、異なるハードウェアモードで実行されることが理解される。オペレーティングシステムカーネルプログラム等のより信頼性のあるプログラムは、典型的に、特権モード内で動作する。アプリケーションプログラムは、典型的に、ユーザモード内で動作する。
【0027】
ユーザモードで書き込み可能なメモリ内に記憶されるプログラム命令の特権モード実行が許可されるか否かを制御する、レジスタ46内のセキュリティフラグは、プログラム命令制御下で設定される。レジスタ46は、コプロセッサ命令を使用してセキュリティフラグを設定するように書き込まれ得る、コプロセッサレジスタとして構成されてもよい。セキュリティフラグを使用して提供される機構のセキュリティを維持するために、セキュリティフラグは、特権モードである際にのみ書き込まれてもよい。これは、悪意のある、または少なくとも未承認のユーザモードプログラムが、セキュリティフラグの設定を解除し、それによって、ユーザモードで書き込み可能なメモリ内に記憶されるプログラム命令の特権モード実行を許可することを防止する。
【0028】
図4は、使用されてもよい、そのようなバーチャルマシン実装を図示する。先に記載された実施形態は、関心のある技法を支援する特定の処理ハードウェアを動作させるための装置および方法の観点から、本発明を実装する一方、また、ハードウェアデバイスのいわゆるバーチャルマシン実装を提供することも可能である。これらのバーチャルマシン実装は、バーチャルマシンプログラム510を支援するホストオペレーティングシステム520上で実行されるホストプロセッサ530上で実行される。妥当な速度で実行するバーチャルマシン実装を提供するためには、典型的に、大きく強力なプロセッサが必要とされるが、そのような手法は、別のプロセッサに固有のコードを実行することを所望する際等の特定の状況においては、互換性または再利用の理由から正当化される。バーチャルマシンプログラム510は、アプリケーションプログラム500に、バーチャルマシンプログラム510によってモデル化されているデバイスである実際のハードウェアによって提供され得るアプリケーションプログラムインターフェースと同一である、アプリケーションプログラムインターフェースを提供する。したがって、上述されるメモリアクセスの制御を含むプログラム命令は、それらのバーチャルマシンハードウェアとの対話をモデル化するために、バーチャルマシンプログラム510を使用して、アプリケーションプログラム500内から実行されてもよい。
【符号の説明】
【0029】
2 データ処理システム
4 集積回路
6 メモリ
8 プロセッサ
10 メモリインターフェース回路
12 メモリ管理ユニット
14 汎用レジスタバンク
16 乗算器
18 シフタ
20 加算器
22 命令プリフェッチユニット
24 命令パイプライン
14、16、18、20 データ経路
28 変換索引バッファ
30 ページテーブルデータ

【特許請求の範囲】
【請求項1】
データを処理するための装置であって、
処理動作を実施するプログラム命令のストリームに応答する、プロセッサと、
前記プロセッサおよびメモリに連結され、前記プロセッサによる前記メモリへのアクセスを制御するように構成された、メモリ制御回路と、
を備え、
前記プロセッサは、少なくとも第1のモードおよび第2のモードを含む、複数のハードウェア動作モードを有し、
前記メモリ制御回路は、
(i)前記プロセッサが前記第1のモードである場合、前記メモリ制御回路は、前記メモリの第1の部分への書き込みアクセスを許可するとともに前記メモリの第2の部分への少なくとも書き込みアクセスを許可せず、
(ii)前記プロセッサが前記第2のモードである場合、前記メモリ制御回路は、前記メモリの前記第1の部分への書き込みアクセスを許可するとともに前記メモリの第2の部分への書き込みアクセスを許可する
ように、前記メモリへのアクセスを制御し、
前記メモリ制御回路は、前記プロセッサが、前記第2のモードの前記プロセッサによる実行のためのプログラム命令を前記メモリの前記第1の部分から読み出すことを防止するように、設定値を有するセキュリティフラグに応答することを特徴とする装置。
【請求項2】
前記プロセッサは、前記メモリの前記第2の部分から実行のためのプログラム命令を読み出すことを特徴とする請求項1に記載の装置。
【請求項3】
前記メモリ制御回路は、前記第1の部分の一部として、前記メモリ内の1つ以上のメモリアドレス領域を識別し、前記第2の部分の一部として、前記メモリ内の1つ以上のメモリアドレス領域を識別するように、制御データに応答することを特徴とする請求項1または2に記載の装置。
【請求項4】
前記第1のモードは、アプリケーションプログラムを実行するためのユーザモードであり、
前記第2のモードは、少なくともオペレーティングシステムカーネルプログラムを実行するための特権モードであることを特徴とする請求項1から3のいずれか一項に記載の装置。
【請求項5】
前記セキュリティフラグが前記設定値を有するとともに前記プロセッサが前記第2のモードである場合、前記メモリ制御回路は、前記プロセッサが前記メモリの前記第1の部分からデータ値を読み出すことを許可することを特徴とする請求項1から4のいずれか一項に記載の装置。
【請求項6】
前記メモリ制御回路は、
メモリ管理ユニットと、
メモリ保護ユニットと、
のうちの1つを備えることを特徴とする請求項1から5のいずれか一項に記載の装置。
【請求項7】
前記プロセッサが前記第2のモードである場合、前記セキュリティフラグは、プログラム命令制御下で書き込まれ、
前記プロセッサが前記第1のモードである場合、前記セキュリティフラグは、プログラム命令制御下で書き込むことができないことを特徴とする請求項1から6のいずれか一項に記載の装置。
【請求項8】
データを処理するための装置であって、
プログラム命令のストリームに応えて処理動作を実施するための、プロセッサ手段と、
前記プロセッサ手段およびデータを格納するためのメモリ手段に連結され、前記プロセッサ手段による前記メモリ手段へのアクセスを制御するための、メモリ制御手段と、
を備え、
前記プロセッサ手段は、少なくとも第1のモードおよび第2のモードを含む、複数のハードウェア動作モードを有し、
前記メモリ制御手段は、
(i)前記プロセッサ手段が前記第1のモードである場合、前記メモリ制御手段は、前記メモリ手段の第1の部分への書き込みアクセスを許可するとともに前記メモリ手段の第2の部分への少なくとも書き込みアクセスを許可せず、
(ii)前記プロセッサ手段が前記第2のモードである場合、前記メモリ制御手段は、前記メモリ手段の前記第1の部分への書き込みアクセスを許可するとともに、前記メモリ手段の第2の部分への書き込みアクセスを許可する
ように、前記メモリ手段へのアクセスを制御し、
前記メモリ制御手段は、前記プロセッサ手段が、前記第2のモードの前記プロセッサ手段による実行のためのプログラム命令を前記メモリ手段の前記第1の部分から読み出すことを防止するように、設定値を有するセキュリティフラグに応答することを特徴とする装置。
【請求項9】
データを処理する方法であって、
プログラム命令のストリームに応えて、プロセッサを用いて処理動作を実施するステップと、
前記プロセッサおよびメモリに連結されたメモリ制御回路を使用して、前記プロセッサによるメモリへのアクセスを制御するステップと、
を含み、
前記プロセッサは、少なくとも第1のモードおよび第2のモードを含む、複数のハードウェア動作モードを有し、
前記メモリ制御回路は、
(i)前記プロセッサが前記第1のモードである場合、前記メモリ制御回路が、前記メモリの第1の部分への書き込みアクセスを許可するとともに前記メモリの第2の部分への少なくとも書き込みアクセスを許可せず、
(ii)前記プロセッサが前記第2のモードである場合、前記メモリ制御回路が、前記メモリの前記第1の部分への書き込みアクセスを許可するとともに前記メモリの第2の部分への書き込みアクセスを許可する
ように、前記メモリへのアクセスを制御し、
前記メモリ制御回路は、前記プロセッサが、前記第2のモードの前記プロセッサによる実行のためのプログラム命令を前記メモリの前記第1の部分から読み出すことを防止するように、設定値を有するセキュリティフラグに応答することを特徴とする方法。
【請求項10】
前記プロセッサは、前記メモリの前記第2の部分から実行のためのプログラム命令を読み出すことを特徴とする請求項9に記載の方法。
【請求項11】
前記メモリ制御回路は、前記第1の部分の一部として、前記メモリ内の1つ以上のメモリアドレス領域を識別し、前記第2の部分の一部として、前記メモリ内の1つ以上のメモリアドレス領域を識別するように、制御データに応答することを特徴とする請求項9または10に記載の方法。
【請求項12】
前記第1のモードは、アプリケーションプログラムを実行するためのユーザモードであり、
前記第2のモードは、少なくともオペレーティングシステムカーネルプログラムを実行するための特権モードであることを特徴とする請求項9から11のいずれか一項に記載の方法。
【請求項13】
前記セキュリティフラグが前記設定値を有するとともに前記プロセッサが前記第2のモードである場合、前記メモリ制御回路は、前記プロセッサが前記メモリの前記第1の部分からデータ値を読み出すことを許可することを特徴とする請求項9から12のいずれか一項に記載の方法。
【請求項14】
前記メモリ制御回路は、
メモリ管理ユニットと、
メモリ保護ユニットと、
のうちの1つを備えることを特徴とする請求項9から13のいずれか一項に記載の方法。
【請求項15】
請求項9に記載の方法を実施するためのバーチャルマシン装置を提供するように、コンピュータプログラムによって制御される処理回路を有することを特徴とするデータを処理するための装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2013−519934(P2013−519934A)
【公表日】平成25年5月30日(2013.5.30)
【国際特許分類】
【出願番号】特願2012−552453(P2012−552453)
【出願日】平成22年12月16日(2010.12.16)
【国際出願番号】PCT/GB2010/052105
【国際公開番号】WO2011/101609
【国際公開日】平成23年8月25日(2011.8.25)
【出願人】(504394342)アーム・リミテッド (134)
【Fターム(参考)】