(57)【特許請求の範囲】
【請求項１】
データを処理するための装置であって、
処理動作を実施するプログラム命令のストリームに応答する、プロセッサと、
前記プロセッサおよびメモリに連結され、前記プロセッサによる前記メモリへのアクセスを制御するように構成された、メモリ制御回路と、
を備え、
前記プロセッサは、少なくとも第１のモードおよび第２のモードを含む、複数のハードウェア動作モードを有し、
前記メモリ制御回路は、
（ｉ）前記プロセッサが前記第１のモードである場合、前記メモリ制御回路は、前記メモリの第１の部分への書き込みアクセスを許可するとともに前記メモリの第２の部分への少なくとも書き込みアクセスを許可せず、
（ｉｉ）前記プロセッサが前記第２のモードである場合、前記メモリ制御回路は、前記メモリの前記第１の部分への書き込みアクセスを許可するとともに前記メモリの第２の部分への書き込みアクセスを許可する
ように、前記メモリへのアクセスを制御し、
前記メモリ制御回路は、前記第２のモードの前記プロセッサに与えられない権利を前記第１のモードの前記プロセッサに与える設定値を有するセキュリティフラグに応答し、前記プロセッサが、前記第２のモードの前記プロセッサによる実行のためのプログラム命令を前記メモリの前記第１の部分から読み出すことを防止し、
前記セキュリティフラグが前記設定値を有するとともに前記プロセッサが前記第２のモードである場合、前記メモリ制御回路は、前記プロセッサが前記メモリの前記第１の部分からデータ値を読み出すことを許可することを特徴とする装置。
【請求項２】
前記プロセッサは、前記メモリの前記第２の部分から実行のためのプログラム命令を読み出すことを特徴とする請求項１に記載の装置。
【請求項３】
前記メモリ制御回路は、前記第１の部分の一部として、前記メモリ内の１つ以上のメモリアドレス領域を識別し、前記第２の部分の一部として、前記メモリ内の１つ以上のメモリアドレス領域を識別するように、制御データに応答することを特徴とする請求項１または２に記載の装置。
【請求項４】
前記第１のモードは、アプリケーションプログラムを実行するためのユーザモードであり、
前記第２のモードは、少なくともオペレーティングシステムカーネルプログラムを実行するための特権モードであることを特徴とする請求項１から３のいずれか一項に記載の装置。
【請求項５】
前記メモリ制御回路は、
メモリ管理ユニットと、
メモリ保護ユニットと、
のうちの１つを備えることを特徴とする請求項１から４のいずれか一項に記載の装置。
【請求項６】
前記プロセッサが前記第２のモードである場合、前記セキュリティフラグは、プログラム命令制御下で書き込まれ、
前記プロセッサが前記第１のモードである場合、前記セキュリティフラグは、プログラム命令制御下で書き込むことができないことを特徴とする請求項１から５のいずれか一項に記載の装置。
【請求項７】
データを処理するための装置であって、
プログラム命令のストリームに応えて処理動作を実施するための、プロセッサ手段と、
前記プロセッサ手段およびデータを格納するためのメモリ手段に連結され、前記プロセッサ手段による前記メモリ手段へのアクセスを制御するための、メモリ制御手段と、
を備え、
前記プロセッサ手段は、少なくとも第１のモードおよび第２のモードを含む、複数のハードウェア動作モードを有し、
前記メモリ制御手段は、
（ｉ）前記プロセッサ手段が前記第１のモードである場合、前記メモリ制御手段は、前記メモリ手段の第１の部分への書き込みアクセスを許可するとともに前記メモリ手段の第２の部分への少なくとも書き込みアクセスを許可せず、
（ｉｉ）前記プロセッサ手段が前記第２のモードである場合、前記メモリ制御手段は、前記メモリ手段の前記第１の部分への書き込みアクセスを許可するとともに、前記メモリ手段の第２の部分への書き込みアクセスを許可する
ように、前記メモリ手段へのアクセスを制御し、
前記メモリ制御手段は、前記第２のモードの前記プロセッサに与えられない権利を前記第１のモードの前記プロセッサに与える設定値を有するセキュリティフラグに応答し、前記プロセッサ手段が、前記第２のモードの前記プロセッサ手段による実行のためのプログラム命令を前記メモリ手段の前記第１の部分から読み出すことを防止し、
前記セキュリティフラグが前記設定値を有するとともに前記プロセッサ手段が前記第２のモードである場合、前記メモリ制御手段は、前記プロセッサ手段が前記メモリ手段の前記第１の部分からデータ値を読み出すことを許可することを特徴とする装置。
【請求項８】
データを処理する方法であって、
プログラム命令のストリームに応えて、プロセッサを用いて処理動作を実施するステップと、
前記プロセッサおよびメモリに連結されたメモリ制御回路を使用して、前記プロセッサによるメモリへのアクセスを制御するステップと、
を含み、
前記プロセッサは、少なくとも第１のモードおよび第２のモードを含む、複数のハードウェア動作モードを有し、
前記メモリ制御回路は、
（ｉ）前記プロセッサが前記第１のモードである場合、前記メモリ制御回路は、前記メモリの第１の部分への書き込みアクセスを許可するとともに前記メモリの第２の部分への少なくとも書き込みアクセスを許可せず、
（ｉｉ）前記プロセッサが前記第２のモードである場合、前記メモリ制御回路は、前記メモリの前記第１の部分への書き込みアクセスを許可するとともに前記メモリの第２の部分への書き込みアクセスを許可する
ように、前記メモリへのアクセスを制御し、
前記メモリ制御回路は、前記第２のモードの前記プロセッサに与えられない権利を前記第１のモードの前記プロセッサに与える設定値を有するセキュリティフラグに応答し、前記プロセッサが、前記第２のモードの前記プロセッサによる実行のためのプログラム命令を前記メモリの前記第１の部分から読み出すことを防止し、
前記セキュリティフラグが前記設定値を有するとともに前記プロセッサが前記第２のモードである場合、前記メモリ制御回路は、前記プロセッサが前記メモリの前記第１の部分からデータ値を読み出すことを許可することを特徴とする方法。
【請求項９】
前記プロセッサは、前記メモリの前記第２の部分から実行のためのプログラム命令を読み出すことを特徴とする請求項８に記載の方法。
【請求項１０】
前記メモリ制御回路は、前記第１の部分の一部として、前記メモリ内の１つ以上のメモリアドレス領域を識別し、前記第２の部分の一部として、前記メモリ内の１つ以上のメモリアドレス領域を識別するように、制御データに応答することを特徴とする請求項８または９に記載の方法。
【請求項１１】
前記第１のモードは、アプリケーションプログラムを実行するためのユーザモードであり、
前記第２のモードは、少なくともオペレーティングシステムカーネルプログラムを実行するための特権モードであることを特徴とする請求項８から１０のいずれか一項に記載の方法。
【請求項１２】
前記メモリ制御回路は、
メモリ管理ユニットと、
メモリ保護ユニットと、
のうちの１つを備えることを特徴とする請求項８から１１のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムの分野に関する。より具体的には、本発明は、複数のハードウェア動作モード、および現在のハードウェアモードに基づくメモリアクセスの制御を有する、データ処理システムに関する。
【背景技術】
【０００２】
プロセッサが複数のハードウェア動作モードを有するデータ処理システムを提供することは、既知である。例えば、プロセッサは、特権モードおよびユーザモードを含む、ハードウェアモードで動作することができる。また、他の目的のためのさらなるハードウェアモードが存在し得る。特権モードは、通常、オペレーティングシステムカーネル等のより信頼性のあるプログラムコードに使用され、プロセッサがユーザモードで動作している際より多くのメモリエリアへのアクセスを有する。ユーザモードは、典型的に、アプリケーションプログラム等の前者に比べて信頼性のより少ないプログラムに使用される。このようにして、プロセッサの動作の現在のモードに敏感なメモリ管理ユニットまたはメモリ保護ユニットを使用することによって、プログラムからメモリの所定域への悪意のある、または不慮のアクセスが防止され得る、これは、プロセッサが特権モードではない場合にメモリの所定域にアクセスすることを防止する。そのようなシステム内におけるモデルは、特権動作モードが、ユーザモードより多くのシステム資源、例えば、メモリ内の域へのアクセスを有するというものである。
【０００３】
１つの種類の生じる可能性がある悪意のあるセキュリティ攻撃、または不運な誤操作は、システムが、特権モードで実行している間に、ユーザモードで書き込み可能なメモリの域内に記憶されたプログラム命令を不適切に実行させられるというものである。このようにして、一例として、人は、悪意のあるプログラム命令をユーザモードでアクセス可能なメモリの域に書き込み、次いで、プロセッサを、ユーザモードでアクセス可能なメモリエリアから読み出される悪意のあるプログラム命令を実行している間に、メモリの保護領域へのアクセスが行われ得る、特権モードに切り替えることができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
一態様から見ると、本発明は、処理動作を実施するようにプログラム命令のストリームに応答する、プロセッサと、プロセッサおよびメモリに連結され、プロセッサによるメモリへのアクセスを制御するように構成された、メモリ制御回路と、を備え、プロセッサは、少なくとも第１のモードおよび第２のモードを含む、複数のハードウェア動作モードを有し、メモリ制御回路は、（ｉ）プロセッサが第１のモードである場合、メモリ制御回路は、メモリの第１の部分への書き込みアクセスを許可するとともにメモリの第２の部分への少なくとも書き込みアクセスを許可せず、（ｉｉ）プロセッサが第２のモードである場合、メモリ制御回路は、メモリの第１の部分への書き込みアクセスを許可するとともにメモリの第２の部分への書き込みアクセスを許可するように、メモリへのアクセスを制御し、メモリ制御回路は、前記第２のモードの前記プロセッサに与えられない権利を前記第１のモードの前記プロセッサに与える設定値を有するセキュリティフラグに応答し、プロセッサが、第２のモードのプロセッサによる実行のためのプログラム命令をメモリの第１の部分から読み出すことを防止し、
前記セキュリティフラグが前記設定値を有するとともに前記プロセッサが前記第２のモードである場合、前記メモリ制御回路は、前記プロセッサが前記メモリの前記第１の部分からデータ値を読み出すことを許可するための装置を提供する。
【０００５】
本技法は、これらのプログラム命令がユーザモードで書き込まれ得るメモリの領域から読み込まれる際、システムが特権モードでプログラム命令を正当に実行する理由は、実際にはそれ程ないと認識する。特権モードで実行されるコードは、通常、特権モードでのみ書き込み可能なメモリ内に記憶される。これは、特権モードで実行されるプログラム命令を、不適切な不慮の改ざん、ならびに悪意のある改ざんから保護する。したがって、本技法は、プロセッサが、ユーザモードで書き込み可能であり得るメモリの域から、特権モードでの実行のためのプログラム命令を読み出すことを防止するために、メモリ制御回路を使用することによって、特権モードにユーザモードより多くのアクセス権を与えるこの分野の一般的な技術的偏見に対抗する。メモリ制御回路のこのアクションは、ハードウェアが、設計者がユーザモードで書き込み可能なメモリの域内に記憶されるプログラム命令を特権モードで実行することを望むシステムを支援することができ、一方、メモリ制御回路によって提供されるハードウェア施行機構を制御するセキュリティフラグを用いて、この能力をオフに切り替える、簡単な方法を提供するように、セキュリティフラグによって、グローバルにオンおよびオフを切り替えられてもよい。上記において、ハードウェアモードは、特権モードおよびユーザモードと称されてきたが、本技法は、そのようなモードを有するシステム内での使用に制限されず、より広くは、第１のモードおよび第２のモードを有するシステム内で使用されてもよく、第２のモードは、第１のモードより多くのメモリの領域へのアクセスを有し、依然として、第１のモードで書き込まれ得るメモリの領域から読み出されるプログラム命令を実行することを選択的に防止されることが理解される。
【０００６】
メモリ制御回路は、第１の部分として、メモリ内の１つ以上のメモリアドレス領域を識別し、第２の部分として、メモリ内の１つ以上のメモリアドレス領域を識別するように、制御データに応答し得る。したがって、第１の部分および第２の部分は、メモリ内で連続している必要はなく、メモリ制御回路によって読み出される制御データによって定義されてもよい。いくつかの実施形態では、これは、メモリ管理ユニットによって読み出される、メモリページテーブルデータであってもよい。
【０００７】
本技法は、第１のモードがアプリケーションプログラムを実行するためのユーザモードであり、第２のモードが少なくともオペレーティングシステムカーネルプログラムを実行するための特権モードであるシステムにおいて、特に有用である。
【０００９】
メモリ制御回路は、様々な異なる形態をとることができることが理解される。メモリ制御回路のいくつかの例は、メモリ管理ユニットおよびメモリ保護ユニットである。
【００１０】
セキュリティフラグは、便利に、プロセッサが第２のモードである際、プログラム命令制御下で書き込まれてもよく、セキュリティフラグは、プロセッサが第１のモードである際、プログラム命令制御下で書き込むことはできない。このようにして、第１のモードで動作している際にセキュリティフラグの値を変更することによって、セキュリティフラグによって提供されるセキュリティが回避され得ない。
【００１１】
別の態様から見ると、本発明は、プログラム命令のストリームに応えて処理動作を実施するためのプロセッサ手段と、該プロセッサ手段およびデータを格納するためのメモリ手段に連結され、前記プロセッサ手段による前記メモリ手段へのアクセスを制御するための、メモリ制御手段回路と、を備え、プロセッサ手段は、少なくとも第１のモードおよび第２のモードを含む、複数のハードウェア動作モードを有し、メモリ制御手段は、（ｉ）プロセッサ手段が第１のモードである場合、メモリ制御手段は、メモリ手段の第１の部分への書き込みアクセスを許可するとともにメモリ手段の第２の部分への少なくとも書き込みアクセスを許可せず、（ｉｉ）プロセッサ手段が第２のモードである場合、メモリ制御手段は、メモリ手段の第１の部分への書き込みアクセスを許可するとともにメモリ手段の第２の部分への書き込みアクセスを許可するように、メモリ手段へのアクセスを制御し、メモリ制御手段は、前記第２のモードの前記プロセッサに与えられない権利を前記第１のモードの前記プロセッサに与える設定値を有するセキュリティフラグに応答し、プロセッサ手段が、第２のモードのプロセッサ手段による実行のための前記プログラム命令をメモリ手段の前記第１の部分から読み出すことを防止し、前記セキュリティフラグが前記設定値を有するとともに前記プロセッサ手段が前記第２のモードである場合、前記メモリ制御手段は、前記プロセッサ手段が前記メモリ手段の前記第１の部分からデータ値を読み出すことを許可する、データを処理するための装置を提供する。
【００１２】
さらなる態様から見ると、本発明は、データを処理する方法であって、プログラム命令のストリームに応えて、プロセッサを用いて処理動作を実施するステップと、プロセッサおよびメモリに連結されたメモリ制御回路を使用して、プロセッサによるメモリへのアクセスを制御するステップと、を含み、プロセッサは、少なくとも第１のモードおよび第２のモードを含む、複数のハードウェア動作モードを有し、メモリ制御回路は、（ｉ）プロセッサが第１のモードである場合、メモリ制御回路は、メモリの第１の部分への書き込みアクセスを許可するとともにメモリの第２の部分への少なくとも書き込みアクセスを許可せず、（ｉｉ）プロセッサが第２のモードである場合、メモリ制御回路は、メモリの第１の部分への書き込みアクセスを許可するとともにメモリの第２の部分への書き込みアクセスを許可するように、メモリへのアクセスを制御し、メモリ制御回路は、前記第２のモードの前記プロセッサに与えられない権利を前記第１のモードの前記プロセッサに与える設定値を有するセキュリティフラグに応答し、プロセッサが、第２のモードのプロセッサによる実行のためのプログラム命令をメモリの第１の部分から読み出すことを防止し、
前記セキュリティフラグが前記設定値を有するとともに前記プロセッサが前記第２のモードである場合、前記メモリ制御回路は、前記プロセッサが前記メモリの前記第１の部分からデータ値を読み出すことを許可する、方法を提供する。
【００１３】
本発明はまた、上記の特長を有するバーチャルマシンの形態で実装されてもよい。
【００１４】
ここで、添付の図面を参照して、一例としてのみ、本発明の実施形態が説明され、図面は、以下の通りである。
【図面の簡単な説明】
【００１５】
【図１】プロセッサおよびメモリを含むデータ処理システムを図式的に図示する。
【図２】プロセッサのハードウェアモード、読み出しが命令フェッチであるか否か、および読み出しがユーザモードでアクセス可能なメモリ位置からであるか否かに基づく、メモリ読み出し動作の制御を図式的に図示するフロー図である。
【図３】複数のハードウェア動作モード、ならびにそれらの関連付けられるアクセス権および典型的な用途を図式的に図示する。
【図４】バーチャルマシン実装を図式的に図示する。
【発明を実施するための形態】
【００１６】
図１は、メモリ６に連結された集積回路４を含む、データ処理システム２を図式的に図示する。集積回路４は、プロセッサ８と、メモリインターフェース回路１０と、メモリ管理ユニット１２とを含む。プロセッサ８内には、プログラム命令Ｉの制御下でメモリ６からフェッチされるデータ値Ｄに対して処理動作を実施するためのデータ経路を形成する、汎用レジスタバンク１４と、乗算器１６と、シフタ１８と、加算器２０とが提供される。命令プリフェッチユニット２２によってメモリ６からフェッチされるプログラム命令Ｉは、命令パイプライン２４に供給される。命令パイプライン２４は、データ経路１４、１６、１８、２０を、復号されるプログラム命令によって指定される所望の処理動作（単数または複数）を実施するように構成し、制御するための、データ経路１４、１６、１８、２０の制御信号を生成するように、命令復号器２６を制御する。プロセッサ８は、典型的に、明確化のために図１からは省略されている、より多くの回路要素を含有することが当業者によって理解される。
【００１７】
また、集積回路４内には、メモリインターフェース回路１０およびメモリ管理ユニット１２も含まれる。メモリインターフェース回路１０は、集積回路４からメモリ６に送信される、メモリアクセス信号（読み出しであっても書き込みであってもよい）の生成に責任がある。これらのメモリアクセス信号は、メモリ６内の物理アドレスを使用する。この構成は、本技法が使用され得るシステムの実施例にすぎないが、プロセッサ８は、仮想アドレスを使用して動作する。メモリ管理ユニット１２は、ページテーブルデータ３０を使用して、仮想アドレスを物理アドレスに変換する。このページテーブルデータは、メモリ管理ユニット１２の制御データである。メモリの最近アクセスされた領域のページテーブルデータは、メモリ管理ユニット１２内の変換索引バッファ２８内に記憶される。特定のメモリアクセスのページテーブルデータが変換索引バッファ２８内に存在しない場合、メモリ６内のページテーブルデータ３０の全記憶から、適切なページテーブルデータがフェッチされる。
【００１８】
メモリ６は、メモリインターフェース回路１０によって生成される物理アドレスを使用してアドレス指定される、メモリアドレス空間を提供する。メモリ６は、可能なメモリアドレス空間のすべてに対応する記憶域を提供しなくてもよい。メモリアドレス空間は、メモリアドレス領域３２、３４、３６、３８、４０、４２等に分割される。これらのメモリアドレス領域３２〜４２のそれぞれは、これらのメモリ領域へのアクセスを制御するためにメモリ管理ユニット１２によって使用される、関連ページテーブルデータを有する。当業者によって理解されるように、このページテーブルデータは、プロセッサ８が特権モードで動作している場合、または特権モードもしくはユーザモードのいずれかで動作している場合に、関心のあるメモリアドレス領域にアクセスすること（読み出しのみ、または読み出し／書き込みのいずれか）ができるか否かを示すデータを含んでもよい。ページテーブルデータのこの部分は、変換索引バッファ２８の一部として図示される、Ｐ／Ｕフラグデータ４４によって示される。また、ページテーブルデータは、許可されるアクセスが読み出しのみであるか、または読み出し／書き込みであるかを示す、Ｒ／Ｗフラグデータ４３も含む。図１に示されるテーブルは、異なるアクセス権にマップされる、Ｐ／Ｕフラグデータ４４およびＲ／Ｗフラグデータ４３の異なる値の一実施例を与える。メモリアドレス領域３２、３４、３６、４０は、共に、プロセッサ８がユーザモードである際に書き込み可能ではない、メモリ６の第２の部分を形成する。メモリアドレス領域３２、３６、および４０は、特権モードでのみアクセス可能である。メモリアドレス領域３４は、ユーザモードでは、読み出しのみアクセス可能であるが、ユーザモードでは、書き込むことができない。メモリアドレス領域３８および４２は、プロセッサがユーザモードである際に書き込まれ、読み出されてもよく、プロセッサ８が特権モードである際に書き込まれてもよく、プロセッサ８が特権モードである際にデータ値を読み出されてもよいが、プロセッサ８が特権モードである際に命令値を読み出すことができない、メモリ６の第１の部分を形成する。
【００１９】
この挙動は、この例示の実施形態では、メモリ管理ユニット１２によって施行される。メモリ管理ユニット１２は、プロセッサ８が現在、特権モードであるか、またはユーザモードであるかを示す入力信号Ｐ／Ｕを、プロセッサ８から受信する。また、メモリ管理ユニット１２は、実施されているメモリアクセスが、命令フェッチに関連するか、またはデータアクセス動作に関連するかを示す入力信号Ｉ／Ｄも、メモリインターフェース回路１０から受信する。これらの入力信号およびメモリ管理ユニット１２内のレジスタ４６内に記憶されたセキュリティフラグの値を使用して、特権モードでのメモリ６の第１の部分３８ならびに４２から読み出されるプログラム命令の実行の防止が施行されてもよい。
【００２０】
図２は、メモリ管理ユニット１２の動作の部分を図式的に図示する、フロー図である。メモリ管理ユニット１２は、メモリ保護ユニットの形態で提供することもできることが理解される。ステップ４８で、処理は、メモリインターフェース回路１０で、プロセッサ８からメモリ読み出し要求動作が受信されるまで待機する。次いで、ステップ５０は、メモリ管理ユニット１２へのＰ／Ｕ入力信号を使用して、プロセッサ８が現在特権モードであるか否かを判定する。プロセッサ８が特権モードではない場合、プロセッサ８は、この分かりやすい実施例では、ユーザモードであり、処理は、ステップ５２に進む。ステップ５２は、ページテーブルデータ３０内で、読み出しアクセスが試みられているメモリアドレスが特権モードである際にのみアクセス可能であるとマークされているか否かを判定する。メモリアドレスが特権のみとマークされていない場合、処理は、読み出しアクセスが許可される、ステップ５４に進む。しかしながら、メモリアドレスが特権のみアドレスとマークされている場合、ステップ５６は、アクセスを防止する。
【００２１】
ステップ５０で、プロセッサ８が現在特権モードであると判定される場合、処理は、ステップ５８に進む。ステップ５８は、レジスタ４６内に記憶されたセキュリティフラグが現在設定されているか否かを判定する。セキュリティフラグが設定されている（設定値を有する）場合、プロセッサ８がメモリ６の第１の部分３８および４２から読み出されるプログラム命令を実行することを許可しないというポリシーの施行が施行される。ステップ５８で、セキュリティフラグが設定されていないと判定される場合、処理は、ステップ６０に進み、そこでアクセスが許可される。
【００２２】
ステップ５８で、セキュリティフラグが設定されていると判定される場合、処理は、ステップ６２に進み、実施されているアクセスが命令フェッチであるか、またはデータアクセスであるかについての判定が行われる。この判定は、メモリ管理ユニット１２へのＩ／Ｄ入力信号を使用して行われてもよい。実施されているメモリアクセスがデータアクセスである場合、処理は、ステップ６０に進み、この場合も同様にアクセスが許可される。しかしながら、ステップ５８で、セキュリティフラグが設定されていると判定され、ステップ６２で、アクセス動作が命令フェッチであると判定される場合、処理は、ステップ６４に進み、関心のあるメモリアドレスが、読み出しアクセスが試みられているアドレスのページテーブルデータ（すなわち、Ｐ／Ｕフラグデータ４４およびＲ／Ｗフラグデータ４３）によって示される、メモリ６の第１の部分の一部分、すなわち、本実施例では、メモリ領域３８および４２のうちの１つであるか否かについての判定が行われる。メモリアドレスが第１の部分内ではない場合、命令フェッチ動作は、許可されない場合があり、処理は、ステップ６０に進む。しかしながら、メモリ３８および４２の第１の部分からの命令フェッチ動作が試みられている場合、処理は、ステップ６６に進み、関心のあるアクセスが防止される。
【００２３】
ステップ５６または６６のいずれかにおいて等で、メモリアクセスが防止される際、メモリアボート例外処理プログラムコードが実行されるように、メモリアボートがトリガされてもよい。この種類のメモリアボート処理は、当業者によく知られている。
【００２４】
図３は、プロセッサ８の複数のハードウェアモード（またはバーチャルマシン実装において、そのようなハードウェアモードを模倣するモード）を図式的に図示する。本実施例では、２つのモード、すなわち、特権モードおよびユーザモードのみが図示されている。本技法は、より大きな数のモードを有するプロセッサを用いて使用されてもよいことが理解される。特権モードは、特権とマークされたメモリアドレス領域への読み出しのみ、または読み出し／書き込みアクセスのいずれかを許可する。また、特権モードは、データ経路を介した、ユーザモードが読み出し／書き込みアクセス可能とマークされたメモリアドレス領域への読み出しのみ、または読み出し／書き込みアクセスのいずれかも可能にする。特権モード内で、レジスタ４６内のセキュリティフラグが設定される場合、ユーザモードが読み出し／書き込みアクセス可能なメモリからの命令の実行は、許可されない。しかしながら、上記の特権メモリへの読み出しのみ、または読み出し／書き込みアクセスは、特権モードである際、特権メモリからフェッチされる命令が実行されることを許可する。
【００２５】
ユーザモードで実行している際、特権モードメモリアドレス領域とマークされたメモリアドレス領域への読み出しのみ、または読み出し／書き込みアクセスは許可されない。しかしながら、ユーザモードメモリアドレス領域とマークされたメモリアドレス領域への読み出しのみ、または読み出し／書き込みアクセスは許可される。
【００２６】
異なる種類のプログラムは、典型的に、異なるハードウェアモードで実行されることが理解される。オペレーティングシステムカーネルプログラム等のより信頼性のあるプログラムは、典型的に、特権モード内で動作する。アプリケーションプログラムは、典型的に、ユーザモード内で動作する。
【００２７】
ユーザモードで書き込み可能なメモリ内に記憶されるプログラム命令の特権モード実行が許可されるか否かを制御する、レジスタ４６内のセキュリティフラグは、プログラム命令制御下で設定される。レジスタ４６は、コプロセッサ命令を使用してセキュリティフラグを設定するように書き込まれ得る、コプロセッサレジスタとして構成されてもよい。セキュリティフラグを使用して提供される機構のセキュリティを維持するために、セキュリティフラグは、特権モードである際にのみ書き込まれてもよい。これは、悪意のある、または少なくとも未承認のユーザモードプログラムが、セキュリティフラグの設定を解除し、それによって、ユーザモードで書き込み可能なメモリ内に記憶されるプログラム命令の特権モード実行を許可することを防止する。
【００２８】
図４は、使用されてもよい、そのようなバーチャルマシン実装を図示する。先に記載された実施形態は、関心のある技法を支援する特定の処理ハードウェアを動作させるための装置および方法の観点から、本発明を実装する一方、また、ハードウェアデバイスのいわゆるバーチャルマシン実装を提供することも可能である。これらのバーチャルマシン実装は、バーチャルマシンプログラム５１０を支援するホストオペレーティングシステム５２０上で実行されるホストプロセッサ５３０上で実行される。妥当な速度で実行するバーチャルマシン実装を提供するためには、典型的に、大きく強力なプロセッサが必要とされるが、そのような手法は、別のプロセッサに固有のコードを実行することを所望する際等の特定の状況においては、互換性または再利用の理由から正当化される。バーチャルマシンプログラム５１０は、アプリケーションプログラム５００に、バーチャルマシンプログラム５１０によってモデル化されているデバイスである実際のハードウェアによって提供され得るアプリケーションプログラムインターフェースと同一である、アプリケーションプログラムインターフェースを提供する。したがって、上述されるメモリアクセスの制御を含むプログラム命令は、それらのバーチャルマシンハードウェアとの対話をモデル化するために、バーチャルマシンプログラム５１０を使用して、アプリケーションプログラム５００内から実行されてもよい。
【符号の説明】
【００２９】
２      データ処理システム
４      集積回路
６      メモリ
８      プロセッサ
１０      メモリインターフェース回路
１２      メモリ管理ユニット
１４      汎用レジスタバンク
１６      乗算器
１８      シフタ
２０      加算器
２２      命令プリフェッチユニット
２４      命令パイプライン
１４、１６、１８、２０      データ経路
２８      変換索引バッファ
３０      ページテーブルデータ
【図１】
0005571201.tif 000002
【図２】
0005571201.tif 000003
【図３】
0005571201.tif 000004
【図４】
0005571201.tif 000005