(57)【特許請求の範囲】
【請求項１】
データを処理するように構成された処理回路と、
データを保管するように構成されたデータ・ストアと
を備えるデータ処理装置であって、
前記処理回路が第１のソフトウェアを第１の特権レベルで実行し、第２のソフトウェアを前記第１の特権レベルより高い第２の特権レベルで実行するように構成され、
前記データ・ストア内のデータにアクセスするためのデータ・アクセス命令に応答して、前記データ処理装置が、前記第１のソフトウェアに基づいて設定する少なくとも１つの第１の属性及び前記第２のソフトウェアに基づいて設定する少なくとも１つの第２の属性に基づいて前記データ・アクセス命令のための少なくとも１つのアクセス属性を判断するように構成され、前記少なくとも１つの第１の属性及び前記少なくとも１つの第２の属性がそれぞれ、前記データ・アクセス命令の実行の中断が可能であるか否かを指定し、
前記少なくとも１つの第２の属性が前記データ・アクセス命令の実行を中断可能と指定している所定のタイプのデータ・アクセス命令に応答して、前記データ処理装置が、前記少なくとも１つの第１の属性が前記データ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも１つのアクセス属性が前記データ・アクセス命令の実行を中断可能と指定していると判断することが可能なように構成される、
データ処理装置。
【請求項２】
前記所定のタイプのデータ・アクセス命令が、複数の処理サイクルに亘って実行されるデータ・アクセス命令である、請求項１に記載のデータ処理装置。
【請求項３】
前記所定のタイプのデータ・アクセス命令が、前記第１のソフトウェアの命令又は前記第１のソフトウェアの制御下で実行するさらに別のソフトウェアの命令である、請求項１又は２に記載のデータ処理装置。
【請求項４】
前記処理回路が複数のオペレーティング・システムをサポートし、前記第１のソフトウェアが前記複数のオペレーティング・システムの１つであり、前記第２のソフトウェアが前記複数のオペレーティング・システムを管理するためのハイパーバイザである、請求項１から３までのいずれか一項に記載のデータ処理装置。
【請求項５】
前記所定のタイプのデータ・アクセス命令が、前記データ・ストアから前記データ処理装置の複数のレジスタにデータをロードするためのロード・マルチプル命令又は、前記データ処理装置の複数のレジスタから前記データ・ストアにデータを保管するためのストア・マルチプル命令である、請求項１から４までのいずれか一項に記載のデータ処理装置。
【請求項６】
前記データ処理装置が制御値を保持するように構成され、
前記少なくとも１つの第２の属性が前記データ・アクセス命令の実行が中断可能であると指定している前記所定のタイプのデータ・アクセス命令に応答して、前記データ処理装置が、前記制御値に基づいて、前記少なくとも１つのアクセス属性が前記データ・アクセス命令の実行を中断可能と指定しているか否かを判断するように構成される、
請求項１から５までのいずれか一項に記載のデータ処理装置。
【請求項７】
前記少なくとも１つの第２の属性が前記データ・アクセス命令の実行が中断可能であると指定している前記所定のタイプのデータ・アクセス命令について、
前記制御値が第１の値を有する場合には、前記少なくとも１つの第１の属性が前記データ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも１つのアクセス属性が前記データ・アクセス命令の実行を中断可能と指定していると前記データ処理装置が判断するように構成され、
前記制御値が第２の値を有する場合には、前記データ・アクセス命令の実行が中断可能であると前記少なくとも１つのアクセス属性が指定しているか否かを前記データ処理装置が前記少なくとも１つの第１の属性に基づいて判断するように構成される、
請求項６に記載のデータ処理装置。
【請求項８】
前記処理回路が前記第２のソフトウェアに応答して前記制御値を設定するように構成される、請求項６又は７に記載のデータ処理装置。
【請求項９】
前記少なくとも１つの第１の属性が前記データ・アクセス命令の実行を中断不可能と指定しているときに、前記データ処理装置が、前記少なくとも１つのアクセス属性が前記データ・アクセス命令の実行を中断可能と指定していると判断する場合には、前記少なくとも１つの第１の属性に基づいて、前記データ・アクセス命令の実行が中断可能か否かという特性ではない少なくとも１つの他の特性を決定し、当該少なくとも１つの他の特性を、前記少なくとも１つのアクセス属性が指定するように前記データ処理装置が構成される、請求項１から８までのいずれか一項に記載のデータ処理装置。
【請求項１０】
前記少なくとも１つの他の特性が、
（ｉ）前記所定のタイプのデータ・アクセス命令の実行が他のデータ・アクセス命令の実行に対してリオーダーされることが可能か否か、及び
（ｉｉ）前記データ・アクセス命令に応答してアクセスされる前記データがどのようにキャッシュされるかを制御するためのキャッシュ・ポリシー情報
のうち少なくとも１つを含む、請求項９に記載のデータ処理装置。
【請求項１１】
前記少なくとも１つのアクセス属性、前記少なくとも１つの第１の属性、及び前記少なくとも１つの第２の属性がそれぞれ、前記データ・アクセス命令が中断可能なノーマル・タイプのデータ・アクセス命令であるか中断不可能なデバイス・タイプのデータ・アクセス命令であるかを特定する、請求項１から１０までのいずれか一項に記載のデータ処理装置。
【請求項１２】
前記データ・アクセス命令が前記データ・ストア内のある位置のアドレスを指定し、前記データ処理装置が、前記アドレスの少なくとも一部に基づいて前記少なくとも１つの第１の属性及び前記少なくとも１つの第２の属性を決定するように構成される、請求項１から１１までのいずれか一項に記載のデータ処理装置。
【請求項１３】
前記少なくとも１つの第１の属性を定める第１のデータを保管するように構成される第１のメモリ属性ユニットを含み、前記処理回路が前記第１のソフトウェアに応答して前記第１のデータを設定するように構成される、請求項１から１２までのいずれか一項に記載のデータ処理装置。
【請求項１４】
前記少なくとも１つの第２の属性を定める第２のデータを保管するように構成される第２のメモリ属性ユニットを含み、前記処理回路が前記第２のソフトウェアに応答して前記第２のデータを設定するように構成される、請求項１から１３までのいずれか一項に記載のデータ処理装置。
【請求項１５】
データを処理するための処理手段と、
データを保管するためのデータ保管手段と
を備えるデータ処理装置であって、
前記処理手段が、第１のソフトウェアを第１の特権レベルで実行し、第２のソフトウェアを前記第１の特権レベルより高い第２の特権レベルで実行するように構成されており、
前記データ保管手段内のデータにアクセスするためのデータ・アクセス命令に応答して、前記データ処理装置が、前記第１のソフトウェアに基づいて設定した少なくとも１つの第１の属性及び前記第２のソフトウェアに基づいて設定した少なくとも１つの第２の属性であって、それぞれが前記データ・アクセス命令の実行が中断可能であるか否かを指定する少なくとも１つの第１の属性及び少なくとも１つの第２の属性に基づいて、前記データ・アクセス命令のための少なくとも１つのアクセス属性を判断するように構成され、
前記少なくとも１つの第２の属性が前記データ・アクセス命令の実行を中断可能と指定している所定のタイプのデータ・アクセス命令に応答して、前記データ処理装置が、前記少なくとも１つの第１の属性が前記データ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも１つのアクセス属性が前記データ・アクセス命令の実行を中断可能と指定していると判断するように構成される、
データ処理装置。
【請求項１６】
データを処理するように構成された処理回路と、データを保管するように構成されたデータ・ストアとを備え、前記処理回路は第１のソフトウェアを第１の特権レベルで実行し、第２のソフトウェアを前記第１の特権レベルより高い第２の特権レベルで実行するように構成されたデータ処理装置のためのデータ処理方法であって、
前記データ・ストア内のデータにアクセスするためのデータ・アクセス命令に応答して、前記第１のソフトウェアに基づいて設定した少なくとも１つの第１の属性及び前記第２のソフトウェアに基づいて設定した少なくとも１つの第２の属性であって、それぞれが前記データ・アクセス命令の実行が中断可能であるか否かを指定する少なくとも１つの第１の属性及び少なくとも１つの第２の属性に基づいて、前記データ・アクセス命令のための少なくとも１つのアクセス属性を判断することと、
前記少なくとも１つの第２の属性が前記データ・アクセス命令の実行を中断可能と指定している所定のタイプのデータ・アクセス命令に応答して、前記少なくとも１つの第１の属性が前記データ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも１つのアクセス属性が前記データ・アクセス命令の実行を中断可能と指定していると判断することとを含む、
データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の技術はデータ処理の分野に関する。より詳細には、本発明の技術はデータ処理装置でのデータ・アクセスのアクセス属性の扱いに関する。
【背景技術】
【０００２】
データ・ストアからのデータにアクセスするためのデータ・アクセス命令には、そのデータ・アクセスがどのように行われるかを制御するアクセス属性が備わることがある。例えば、あるデータ・アクセスを他のデータ・アクセスに対して順序に従わずに処理してもよいか否か、及びアクセスされたデータをいつ又はどのようにキャッシュすべきかをアクセス属性が指定することがある。しかし、いくつかのアクセス属性はデータ・アクセスの実行に関連する遅延（レイテンシ：latency）に影響することがある。実時間システム（例えば、自動車又は工業用途に使用される装置）では、多くの場合、特定の処理動作が完了するために要する時間に関して、確定的なふるまい（behavior）が行われることが望ましく、したがって、一定のデータ・アクセスに関連する長い遅延は問題になる可能性がある。このことは特に、多数の異なるソフトウェア・アプリケーションが単一のプロセッサ内で組み合わされているときに、１つのアプリケーションが遅延の大きなデータ・アクセスを開始した場合、実時間のクリティカルな動作を行っている別のソフトウェア・アプリケーションが妨害されることがある。本発明の技術は、これらの問題の解決を目指す。
【発明の概要】
【課題を解決するための手段】
【０００３】
１つの態様から見ると、本発明の技術は、
データを処理するように構成された処理回路と、
データを保管するように構成されたデータ・ストアと
を備えるデータ処理装置を提供し、
前記処理回路が第１のソフトウェアを第１の特権レベルで実行し、第２のソフトウェアを第１の特権レベルより高い第２の特権レベルで実行するように構成されており、
データ・ストア内のデータにアクセスするためのデータ・アクセス命令に応答して、データ処理装置が、第１のソフトウェアが設定する少なくとも１つの第１の属性及び第２のソフトウェアが設定する少なくとも１つの第２の属性に基づいて前記データ・アクセス命令のための少なくとも１つのアクセス属性を判断するように構成され、前記少なくとも１つの第１の属性及び前記少なくとも１つの第２の属性がそれぞれ、データ・アクセス命令の実行の中断が可能であるか否かを指定し、
前記少なくとも１つの第２の属性がデータ・アクセス命令の実行を中断可能と指定している所定のタイプのデータ・アクセス命令に応答して、データ処理装置が、前記少なくとも１つの第１の属性がそのデータ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも１つのアクセス属性がそのデータ・アクセス命令の実行を中断可能と設定していると判断するように構成される。
【０００４】
あるタイプのデータ・アクセス属性は、データ・アクセス命令の実行が中断可能か否かを指定してもよい。いくつかのタイプのデータ・アクセス命令は実行に長い時間を要することがあるので、実時間システムでは、そのデータ・アクセス命令がデータ・アクセスの途中で中断可能であるか否かが重要であり得る。中断不可能とマークされているデータ・アクセスの途中に、直ちにサービスを受ける必要のある割り込みなどの実時間（リアルタイム）クリティカルイベントが発生すると、処理回路はデータ・アクセスを完了するために割り当てられ、その結果、望ましくない遅延(delay)が実時間クリティカルイベントの処理に生じることがある。
【０００５】
処理装置は、第１の特権レベルで実行する第１のソフトウェア及び、第１の特権レベルより高い第２の特権レベルで実行する第２のソフトウェアを含む、いくつかのソフトウェアをサポートしてもよい。ソフトウェアの層はそれぞれ、あるデータ・アクセス命令に独自のアクセス属性を設定してもよく、少なくとも１つの第１の属性が第１のソフトウェアによって指定され、少なくとも１つの第２の属性が第２のソフトウェアによって指定され、個々の属性はそのデータ・アクセス命令の実行が中断可能であるか否かを指定する。通常の方式では、同じデータ・アクセスに複数の異なるアクセス属性が設定されていると、そのデータ・アクセスの実際の属性として、最も制限的な属性が選択されることになる。例えば、そのアクセスが中断不可能であると第１のソフトウェアが指定する場合は通常、この指定が、より制限性の低い、データ・アクセスの中断を許可するあらゆる属性に優先する。しかし、データ・アクセスの実行に長時間を要する場合は、制限性の高い属性は実時間クリティカルイベントに対するサービスの能力に影響することがある。
【０００６】
したがって、所定のタイプのデータ・アクセス命令について、第２のソフトウェアが設定した少なくとも１つの第２の属性がそのデータ・アクセス命令の実行を中断可能と指定しているときは、処理回路は、第１のソフトウェアが設定した少なくとも１つの第１の属性が実行を中断不可能と指定していたとしても、実行は中断可能であるとアクセス属性が指定していると判断してもよい。よって、実時間クリティカルイベントの発生時にデータ・アクセス命令が確実に中断され得るように、第１のソフトウェアが設定した属性が、より高い特権レベルにある第２のソフトウェアが設定した属性に無効にされてよい。このことによって、例えば、長時間の割り込み処理遅延が防止される。人は通常、アクセスの処理を、そのデータ・アクセスに設定された相反する属性のうち最も制限的なものを使って行うであろうから、このアプローチは直感に反するものである。
【０００７】
この技術はどのようなデータ・アクセス命令にも使用できるが、特に、複数の処理サイクルに亘って実行され、中断不可能とマークされた場合に長時間の遅延を発生させる可能性のある命令に有用である。
【０００８】
データ・アクセス命令の実行が中断可能であれば、割り込み、例外、又は別の実時間クリティカルイベントが発生したときに、その命令の実行が保留されてもよい。イベントの処理が終われば、そのデータ・アクセス命令の実行が先頭から再起動されてもよいし、可能なら、そのデータ・アクセスが中断された位置から再開されてもよい。
【０００９】
本発明の技術は概して、処理回路によって実行されるあらゆるソフトウェア内で発生する、所定のタイプのデータ・アクセス命令に適用されてもよい。或いは、１つ又は複数の特定のタイプのソフトウェア、具体的には第１のソフトウェア自体の中、又は第１のソフトウェアの制御下で実行するさらに別のソフトウェアの中に所定のタイプのデータ・アクセス命令が出現するときにのみ、前述したとおりのアクセス属性の判断が使用されてもよい。第２のソフトウェア内で所定のタイプのデータ・アクセス命令に遭遇した場合は、そのアクセス属性は第２のソフトウェアが指定する第２の属性に基づいて判断され得、第１のソフトウェアが指定する第１の属性は考慮されない。よって、発生する所定のタイプのデータ・アクセス命令の全てに対して前述した属性判断を使用する必要はない。
【００１０】
第２のソフトウェアが第１のソフトウェアよりも高い特権を有しており、第１及び第２のソフトウェアは、異なる特権レベルで動作する任意のソフトウェアでもよい。本明細書では、「より高い特権レベル」とは、この特権レベルで動作しているソフトウェアが「より低い特権レベル」で動作しているソフトウェアよりも多くの権利を有することを意味する（例えば、第１のソフトウェアからアクセス不可能なデータに第２のソフトウェアがアクセス可能であり得ること、又は、第１のソフトウェアには利用不可能な一定のアクションを第２のソフトウェアが実施可能であり得ることなど）。第１及び第２の特権レベルは、３つ以上のレベルの中の任意の２つの特権レベルでもよい。異なる特権レベルは数値で表されてもよい。いくつかの実施例では高い方の数値がより高い特権レベルを表してもよく（例えば、特権レベル３が特権レベル２よりも高い権利を有してもよい）、その他の実施例では低い方の数値がより高い特権レベルを表してもよい（例えば、特権レベル０が特権レベル１よりも高い権利を有してもよい）。
【００１１】
例えば、実時間システムが仮想化を許可し、そこで同一のデバイス上に複数のオペレーティング・システムが共存し、ハイパーバイザがそれらのオペレーティング・システムを管理することがある。このタイプの環境では、第１のソフトウェアがオペレーティング・システムの１つを含み、第２のソフトウェアがハイパーバイザを含んでもよい。オペレーティング・システム及びハイパーバイザはそれぞれ別々に、データ・アクセスのアクセス属性を定めてもよい。所定のタイプのデータ・アクセス命令の実行が中断可能であるとハイパーバイザが指定する一方で、その命令が中断不可能であることをオペレーティング・システムが要求する場合には、ハイパーバイザがオペレーティング・システムに優先して、オペレーティング・システムが設定する属性に関わらず、そのデータ・アクセスが中断可能とマークされるようにすることができる。このことにより、ゲストのオペレーティング・システムが遅延の大きい不適切なシナリオを作り出すことが防がれる。
【００１２】
本発明の技術は、長い遅延が懸念されるあらゆるタイプのデータ・アクセス命令に適用され得るが、特に、データ・ストアから複数のレジスタにデータをロードするためのロード・マルチプル命令又は、複数のレジスタからデータ・ストアにデータを保管するためのストア・マルチプル命令に有用である。通常、ロード・マルチプル又はストア・マルチプル命令はレジスタのリストを指定することがあり、ロード又はストア命令の実行には複数の処理サイクルが必要になり、サイクルの数はリスト内のレジスタの数によって異なる。ロード・マルチプル又はストア・マルチプル命令が中断不可能と指定され、複数のロード又はストアを完了することがプロセッサにゆだねられると、通常、それらの複数のロード又はストアが完了するまで他の演算にサービスを行うことができない。このことは、その他のイベントの処理に望ましくない長い遅延を引き起こす可能性があり、それらのイベントは実時間クリティカルである可能性がある。これに対処するために、第１のソフトウェアがそのような命令を中断不可能とマークしたとしても、より高い特権レベルにある第２のソフトウェアが、必要な場合には確実にロード・マルチプル及びストア・マルチプル命令が中断可能（且つ、後に再実行可能）になるように覆すことができる。
【００１３】
いくつかのシステムでは、あるデータ・アクセスが中断可能であると第２のソフトウェアが指定し、且つ第１のソフトウェアがそのデータ・アクセスが中断不可能であると指定する場合には、常に第２のソフトウェアが第１のソフトウェアに優先してもよい。しかし、状況によっては、そのデータ・アクセスを中断不可能のままにしておくことが望ましいことがある。したがって、処理装置は制御値を保持してもよい。少なくとも１つの第２の属性がデータ・アクセスの中断を許可している場合、処理回路は制御値に基づいて、そのデータ・アクセス命令の実行を中断できるか判断してもよい。制御値の第１の値は、第１の属性が実行を中断不可能と指定している場合でも、実行が中断可能であることを示すことができる（第２のソフトウェアが指定した属性が第１のソフトウェアが指定した属性に優先するように）。制御値の第２の値は、実行が中断可能か否かは第１の属性に基づいて判断されるべきであるか否かを示してもよい（第１及び第２の属性のうち、より制限的な方が選択されるように）。制御値によって、システムは、アクセスが第２のソフトウェアによって強制的に中断不可能にされるか否かを選択することができる。遅延クリティカル（latency-critical）イベントが予想される場合には制御値を第１の値に設定して実時間要件が確実に満たされるようにすることができ、そのようなイベントが予想されず、割り込み遅延が問題にならないと予想される場合には制御値を第２の値に設定して、第１のソフトウェアの定める方法でデータ・アクセスを制御できるようにしてもよい。制御値は、例えばハイパーバイザなどの第２のソフトウェアに応答して、処理回路によって第１又は第２の値に設定されてもよい。
【００１４】
第２のソフトウェアが第１のソフトウェアの設定した中断不可能な第１の属性に優先してデータ・アクセスを中断可能と設定してもなお、処理回路は、第１のソフトウェアの設定した少なくとも１つの第１の属性に基づいて、データ・アクセス命令の他の特性を少なくとも１つ判断してもよい。例えば、この他の特性は割り込み処理遅延に影響せず、したがって実時間クリティカルではない何らかの特性でもよい。よって、そのデータ・アクセス命令に定められるアクセス属性は、第１及び第２のソフトウェアが定める特性の組み合わせに対応してもよい。
【００１５】
例えば、この他の特性は、所定のタイプのデータ・アクセス命令の実行を他のデータ・アクセス命令の実行に対してリオーダー(reorder:再配列)できるか否かの指示を含んでもよい。また、この他の特性は、データ・アクセス命令に応答してアクセスされたデータがどのようにキャッシュされるかを制御するためのキャッシュ・ポリシー情報を含んでもよい。例えば、キャッシュ・ポリシーは、書き込みアクセスをライト・スルー・アクセス、ライト・バック・アクセス、又はライト・アロケート・アクセスのいずれとして扱うべきかを指定してもよく、これは、アクセスされたデータにいつキャッシュ・ストレージ位置が割り当てられるか、及び、そのキャッシュ・ストレージ位置でいつデータが更新されるかに影響する。同様のポリシー情報が読み出しに設定されてもよい。したがって、データ・アクセスを強制的に中断可能とする第１の値を制御値が有しているときでも、そのデータ・アクセスは、第２のソフトウェアに要求されるとおり中断可能且つ再実行可能となって高遅延の状況を防ぎながらも、バス上の提示順序及びキャッシュ・ポリシー情報などの第１のソフトウェアが定めたいくつかの特性を維持してもよい。
【００１６】
一実例では、第１及び第２のソフトウェアが定める第１及び第２の属性、並びに第１及び第２の属性の組み合わせに基づいてデータ・アクセス命令に設定される最終的なアクセス属性は、それぞれ、そのデータ・アクセス命令がノーマル・タイプのデータ命令か、デバイス・タイプのデータ命令かを特定してもよい。通常、ノーマル・タイプのデータ・アクセス命令は中断可能で、後の段階で再実行又は再開することができる。また、ノーマル・タイプのデータ・アクセスは、他のアクセスに対してリオーダーが許可されることがある。それに対して、デバイス・タイプのデータ・アクセス命令は中断及び再実行が不可能で、他のデータ・アクセスに対してリオーダーすることができない。デバイス・タイプのデータ・アクセスは、多くの場合、データ・アクセスの予想される宛先が外部デバイスに割り当てられたデータ・ストアの領域であるときに、オペレーティング・システムによって使用される。いくつかの外部デバイスは、対応するデバイス・タイプのメモリ領域への読み出し又は書き込みに応答して一定の動作を実行するようにトリガされ得るので、デバイス・タイプ領域に対する読み出し又は書き込みのシーケンスを中断又はリオーダーするべきではなく、それを行うと、外部デバイスが行う動作に影響することがあるという点が重要であり得る。したがって、通常、デバイスの正確な挙動を確保するためにデバイス・タイプのデータ・アクセスが使用される。しかし、複数のオペレーティング・システムが組み合わせられ、ハイパーバイザがオペレーティング・システムを管理する仮想化システムでは、実際には外部デバイスが存在しなくてもよく、外部デバイスに相当する仮想機能をハイパーバイザが提供して、オペレーティング・システムには外部デバイスが実在するように見せかけてもよい。したがって、データ・アクセスへの割り込みに影響される実在のデバイスは存在しなくてもよいので、デバイス・タイプのデータ・アクセスの中断又はリオーダーが可能か否かは問題にしなくてもよい。第２のソフトウェアは、第１のソフトウェアの設定したデバイス・タイプのアクセスが本当にデバイス・タイプのアクセスであることが必要なのか否かを知っていてもよく、デバイス・タイプのアクセスでなくてもよい場合は、第１の属性に優先してそのアクセスをノーマル・タイプのデータ・アクセスとし、必要な場合に中断できるようにすることができる。
【００１７】
データ・アクセス命令はデータ・ストア内のある位置のアドレスを指定することがある。第１及び第２のソフトウェアが設定する第１及び第２の属性は、このアドレスに基づいて決定されてもよい。メモリ・アドレス又はメモリ・アドレスの一部に基づいて特定される、データ・ストアの異なるメモリ領域に、異なるアクセス属性を設定することができる。
【００１８】
属性は、少なくとも１つの第１の属性及び少なくとも１つの第２の属性を定める第１及び第２のデータを保管する、第１及び第２のメモリ属性ユニットを使用して設定されてもよい。第１及び第２のメモリ属性ユニット内のデータは、それぞれ第１及び第２のソフトウェアによって設定されてもよい。メモリ属性ユニットはメモリ保護ユニットであって、データ・アクセスに関連する物理アドレスを受け取り、そのアドレスに基づいて属性データを検索してもよい。或いは、第１及び第２のメモリ属性ユニットはメモリ管理ユニットであって、仮想アドレスを受け取り、その仮想アドレスを物理アドレスに変換し、元の仮想アドレス又は変換後の物理アドレスのどちらかに基づいて対応するデータ・アクセスのアクセス属性を決定してもよい。このように、第１及び第２の属性を決定する様々な方法があってもよい。
【００１９】
データ・アクセス命令のアクセス属性の決定は、データ処理装置の様々な部分によって行われてもよい。例えば、処理回路、第２のメモリ属性ユニット、又はデータ・ストアが、第１及び第２の属性に基づいてアクセス属性の決定を行うこともできる。このように、本発明の技術は、この決定がデータ処理装置内のどこで行われるかについて制限されない。
【００２０】
別の態様から見れば、本発明の技術は、
データを処理するための処理手段と、
データを保管するためのデータ保管手段と
を備えるデータ処理装置を提供し、
前記処理手段が、第１のソフトウェアを第１の特権レベルで実行し、第２のソフトウェアを第１の特権レベルより高い第２の特権レベルで実行するように構成されており、
データ保管手段内のデータにアクセスするためのデータ・アクセス命令に応答して、データ処理装置が、第１のソフトウェアが設定した少なくとも１つの第１の属性及び第２のソフトウェアが設定した少なくとも１つの第２の属性であって、それぞれがそのデータ・アクセス命令の実行が中断可能であるか否かを指定する少なくとも１つの第１の属性及び少なくとも１つの第２の属性に基づいて、前記データ・アクセス命令のための少なくとも１つのアクセス属性を判断するように構成され、
前記少なくとも１つの第２の属性がデータ・アクセス命令の実行を中断可能と指定している所定のタイプのデータ・アクセス命令に応答して、データ処理装置が、前記少なくとも１つの第１の属性がそのデータ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも１つのアクセス属性がそのデータ・アクセス命令の実行を中断可能と指定していると判断するように構成される。
【００２１】
さらに別の態様から見れば、本発明の技術は、データを処理するように構成された処理回路とデータを保管するように構成されたデータ・ストアとを備えるデータ処理装置のためのデータ処理方法を提供し、前記処理回路は、第１のソフトウェアを第１の特権レベルで実行し、第２のソフトウェアを第１の特権レベルより高い第２の特権レベルで実行するように構成されており、前記方法は、
データ・ストア内のデータにアクセスするためのデータ・アクセス命令に応答して、第１のソフトウェアが設定した少なくとも１つの第１の属性及び第２のソフトウェアが設定した少なくとも１つの第２の属性であって、それぞれがそのデータ・アクセス命令の実行が中断可能であるか否かを指定する少なくとも１つの第１の属性及び少なくとも１つの第２の属性に基づいて、前記データ・アクセス命令のための少なくとも１つのアクセス属性を判断することと、
前記少なくとも１つの第２の属性がデータ・アクセス命令の実行を中断可能と指定している所定のタイプのデータ・アクセス命令に応答して、前記少なくとも１つの第１の属性がそのデータ・アクセス命令の実行を中断不可能と指定していたとしても、前記少なくとも１つのアクセス属性がそのデータ・アクセス命令の実行を中断可能と指定していると判断することとを含む。
【００２２】
本技術の実施例を、添付図面を参照しながら単に実例として以下に説明する。
【図面の簡単な説明】
【００２３】
【図１】データ処理装置の概略図である。
【図２】異なる特権レベルで実行しているソフトウェアの概略図である。
【図３】異なる特権レベルで実行しているソフトウェアのそれぞれによって定められるメモリ属性の実例の概略図である。
【図４】ロード・マルチプル命令及びストア・マルチプル命令の実例を示す図である。
【図５】中断不可能なロード・マルチプル又はストア・マルチプル命令が実時間システム内で割り込みの処理に遅延を発生させる実例を示す図である。
【図６】第１及び第２の特権レベルのソフトウェアが定めるアクセス属性の可能な組み合わせから、データ・アクセスに使用するアクセス属性を判断するための表である。
【図７】図６の表を使用してアクセス属性を判断することによって図５に示される割り込み高遅延を防止する方法の実例を示す図である。
【図８】所定のタイプのデータ・アクセス命令についてアクセス特権を判断する方法を示す図である。
【発明を実施するための形態】
【００２４】
図１は、データを処理するための処理回路４及びデータを保管するためのメモリ（データ・ストア）６を備えるデータ処理装置２の一部を概略的に示す。処理回路は、処理回路４によって処理される値を保管するためのレジスタ８を有する。データはメモリ６からレジスタ８にロードされ、レジスタ８からメモリ６に保管されることができる。命令はメモリ６からプロセッサ４にフェッチされることができる。データ又は命令を保管するために、メモリ６内のデータ又は命令よりも小さい遅延(レイテンシ)でアクセスすることができる、データ・キャッシュ又は命令キャッシュ（図１に示されず）が提供されてもよい。
【００２５】
図２に示されるように、処理回路４は異なる特権レベルＥＬ０、ＥＬ１、ＥＬ２で実行するソフトウェアをサポートする。ハイパーバイザ１０が第２の特権レベルＥＬ２で実行される。ハイパーバイザ１０は、ＥＬ２より低い特権レベルである第１の特権レベルＥＬ１で実行されるゲスト・オペレーティング・システム１２の数を管理する。ハイパーバイザ１０は、異なるオペレーティング・システム１２間の切り換えを管理する。例えば、各オペレーティング・システム１２に異なるタイム・スロットが割り当てられ、そのタイム・スロット中に処理回路４がそのオペレーティング・システム１２を実行してもよい。各オペレーティング・システム１２は、最も低い特権レベルである基本特権レベルＥＬ０で実行する１つ又は複数のアプリケーション１４を実行する。オペレーティング・システム１２は１つ又は複数の実時間オペレーティング・システム（ＲＴＯＳ：ｒｅａｌ  ｔｉｍｅ  ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍｓ）１２−０、１２−１及び少なくとも１つの非実時間（「ＧＵＩリッチ」）オペレーティング・システム１２−２を含む。実時間オペレーティング・システム１２−０、１２−１は、例えば、安全のために迅速な割り込み応答処理が重要な、車両内のブレーキ及びエアバッグ・システムを制御するアプリケーションなどの、１つ又は複数の実時間アプリケーション１４−０、１４−１、１４−２を管理する。ＧＵＩリッチなオペレーティング・システム１２−２は、グラフィカル・ユーザ・インタフェース（ＧＵＩ：ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）をサポートする、Ｗｉｎｄｏｗｓ（登録商標）、ｉＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）などのオペレーティング・システムである。ＧＵＩリッチなオペレーティング・システム１２−２は、車両内のステレオ・システムを管理するためのアプリケーションなどの、割り込みが迅速に処理されるか否かが比較的重要ではない１つ又は複数の非実時間アプリケーション１４−３を実行する。その他のシステムは、図２に示される３つのレベル以外に、より多くの、又は少ない特権レベル（「例外レベル」としても知られる）を有してもよい。
【００２６】
図１に戻ると、データ処理装置２は第１のメモリ保護ユニット（ＭＰＵ：ｍｅｍｏｒｙ  ｐｒｏｔｅｃｔｉｏｎ  ｕｎｉｔ）２０を有し、ＭＰＵ２０は第１の特権レベルＥＬ１で実行するオペレーティング・システム１２の１つによって設定される第１のメモリ・アクセス属性を定めるデータを保管する。各オペレーティング・システム１２はそれぞれ独自のメモリ・アクセス属性のセットを保持し、プロセッサ４が実行をそのオペレーティング・システム１２に切り換えたときに、その属性が第１のＭＰＵ２０にロードされる。処理回路４はまた第２のＭＰＵ２２も有し、ＭＰＵ２２は第２の特権レベルＥＬ２にあるハイパーバイザ１０によって設定されるメモリ・アクセス属性を定める。データ・アクセス命令に応答して、処理回路４は命令が指定するアドレスを第１のＭＰＵ２０及び第２のＭＰＵ２２の両方に提供し、それらのＭＰＵは、そのアドレスについてそれぞれのアクセス属性を検索する。それらのアクセス属性に基づいて、ＭＰＵ２０、２２はそのアクセスが実行可能かどうか判断し、そのアクセスが許可されない場合はフォルトをトリガしてもよい。例えば、メモリ６の一定の領域が特権付きとして指定され、特権のない命令によるアクセスが不可能であってもよい。属性はまた、アクセスが中断可能か否かなどの、メモリ６によってどのようにアクセスが行われるかに影響する様々な特性を定めてもよい。
【００２７】
属性はまた、キャッシュ・ポリシー情報を定めてもよい。読み出しアクセスについて、キャッシュ・ポリシー情報は読み出しが下記のいずれであるか指定してもよい。
・リード・スルー：キャッシュにコピーを置くことなく、要求された値がメモリからプロセッサ４のレジスタ８に直接読み出される。
・非リード・スルー：値がメモリ６からキャッシュに読み出され、次にキャッシュからレジスタ８に読み出される。
同様に書き込みアクセスについて、アクセスは下記のように指定されてもよい。
・ライト・スルー：キャッシュ・ヒット時に、キャッシュ及びメモリの両方に値が書き込まれる。
・ライト・バック：キャッシュ・ヒット時にキャッシュに値が書き込まれ、その値を保管するキャッシュ位置がダーティとしてマークされるが、値はメモリ６には書き戻されず、異なるデータ値を保管するためにそのキャッシュ位置が再割り当てされることが必要になってから、ダーティなデータ値がメモリ６に書き戻される。
・ライト・アロケート：キャッシュ・ミス時に、要求されたデータ値がキャッシュにロードされる。
・非ライト・アロケート：キャッシュ・ミス時に、要求されたデータ値がメモリ内で修正され、キャッシュにはロードされない。
これらは、メモリ・アクセス属性によって指定できる特性のほんの数実例であり、他にも多くの特性があり得る。
【００２８】
図１の実例では、プロセッサ４が提供するアドレスは物理アドレスであり、ＭＰＵ２０、２２はそれぞれ、そのメモリ・アドレスに対応するアクセス属性を検索する。ただし他の実例では、ＭＰＵ２０、２０は、処理回路４から仮想アドレスを受け取ってその仮想アドレスを物理アドレスに変換すると共にメモリ・アクセス属性を検索する、メモリ管理ユニット（ＭＭＵ：ｍｅｍｏｒｙ  ｍａｎａｇｅｍｅｎｔ  ｕｎｉｔ）に置き換えられてもよい。オペレーティング・システム１２によって第１のＭＭＵ２０に、またハイパーバイザ１０によって第２のＭＭＵに、異なる仮想−物理アドレス・マッピングが定められてもよい。よって、一般に、ＭＰＵ又はＭＭＵは、データ・アクセスが指定したメモリ・アドレスに基づいて検索され、データ・アクセスのアクセス属性を定めるデータを含む、どのようなメモリ属性ユニットでもよい。
【００２９】
図３に示されるように、第１の例外レベルＥＬ１で実行しているオペレーティング・システム１２と第２の例外レベルＥＬ２で実行しているハイパーバイザ１０が、同じメモリ・アドレスに対して相反するメモリ属性を定める場合がある。例えば、図３の左側に示されるように、オペレーティング・システム１２がメモリ・アドレス空間３０の異なる領域をノーマル・メモリ領域４０又はデバイス・タイプ領域５０として指定することがある。メモリ４０のノーマル領域を目標とするメモリ・アクセス命令はアクセスの途中で中断され、後に再実行されるか再開されてもよいが、デバイス・タイプのメモリ領域５０を目標とするアクセス命令は中断及び再実行／再開が不可能である。また、ノーマル・タイプのアクセスは、他のアクセスに対して元のプログラム順と比べて異なる順序で処理されてもよいが、デバイス・タイプのアクセスはリオーダーできない。図３の右側に示されるように、第２の特権レベルＥＬ２で実行しているハイパーバイザによって定められるメモリ属性が同様に、アドレス空間３０のノーマル領域４０及びデバイス・タイプ領域５０を定めることがある。しかし、ハイパーバイザ１０が定める領域は、オペレーティング・システム１２が定める領域と同じではないことがある。例えば、オペレーティング・システム１２が、アドレス空間３０のある領域が外部デバイスにマッピングされると予想して、その領域をデバイス・タイプと設定することがあるが、ハイパーバイザ１０によって管理される仮想化システムでは、そのようなデバイスが存在しないことがあるので、ハイパーバイザ１０はそのような領域を代わりにノーマルとしてマークすることがある。例えば、図３に示されるようにアドレス５５を目標とするデータ・アクセスで、そのアクセスをオペレーティング・システム１２がデバイス・タイプとして指定し、ハイパーバイザ１０がノーマル・タイプとして指定することがある。
【００３０】
図４は、このメモリ属性の相違が重要な意味をもつ可能性のあるいくつかの命令の実例を示す。図４は、メモリ６からレジスタ８に複数の値をロードするためのロード・マルチプル命令ＬＤＭ（ｌｏａｄ  ｍｕｌｔｉｐｌｅ）を示す。ロード・マルチプル命令は、レジスタ８にロードされる第１の値Ａのメモリ６内のアドレスを示すアドレス＃ａｄｄｒを含むアドレス・レジスタｒ０を指定する。ロード・マルチプル命令はまた、データ値のロード先のレジスタを特定するレジスタｒ１〜ｒ１２のリストも指定する。図４に示すように、アドレス＃ａｄｄｒに保管されている値Ａがレジスタｒ１にロードされ、次に、後続の値Ｂ〜Ｌをそれぞれ他のレジスタｒ２〜ｒ１２にロードするためにアドレスがインクリメントされる。同様に、ストア・マルチプル命令ＳＴＭ（ｓｔｏｒｅ  ｍｕｌｔｉｐｌｅ）は、アドレス＃ａｄｄｒを含むレジスタｒ０及び、データ値Ａ〜Ｌがメモリに保管される元のレジスタｒ１〜ｒ１２のリストを指定する。アドレス＃ａｄｄｒは第１の値Ａの保管先であるメモリ内の位置を特定し、次に後続のメモリ位置にアクセスするために、そのアドレスがインクリメントされる。リスト内のレジスタの数は、実行されるロード又はストアの数を決定する。通常、ロード・マルチプル又はストア・マルチプル命令は、レジスタ毎に１回の処理サイクルを必要とし得る。図４はレジスタを使用してアドレス＃ａｄｄｒが指定される実例を示すが、他の実例では、アドレスは、命令エンコーディングにおいて即値として指定されてもよい。
【００３１】
図５は、オペレーティング・システム１２の制御下で第１のＭＰＵ２０によって、ロード・マルチプル又はストア・マルチプル命令がデバイス・タイプとして指定されたときに発生することのある問題を示す。図５に示されるように、タイム・スロットが各オペレーティング・システム１２に割り当てられ、各オペレーティング・システム１２が処理回路４によってそれぞれのタイム・スロットの間に実行されていてもよい。割り込み６０が定期的に生成されて、新しいオペレーティング・システム１２への切換をトリガする。図５に示されるタイム・スロットの長さは等しいが、これは必須ではなく、１つのオペレーティング・システム１２に別のオペレーティング・システムより長いタイム・スロットを割り当てることもできる。
【００３２】
実時間(リアルタイム)オペレーティング・システム１２−０、１２−１にとって、そのオペレーティング・システム１２への切り換えをトリガする割り込み６０が確定的な時間に発生することは重要である。図５に示されるように、これらの割り込みのうちの１つである６０−１が発生する少し前に、非実時間オペレーティング・システム１２−２がロード・マルチプル又はストア・マルチプル命令に遭遇することがある。その命令がデバイス・タイプとマークされていれば、その命令は中断不可能である。図４に示されるように複数のロード又は複数のストアを行うと何回かの処理サイクルが必要な可能性があるので、ロード・マルチプル又はストア・マルチプル命令を完了した場合、その結果、図５に示されるように、実時間オペレーティング・システム１２−１に関連付けられたタイム・スロットにまで動作が及ぶこともある。命令が中断不可能な場合には、次のオペレーティング・システム１２−１への切換をトリガするための割り込み６０−１の処理が、それによって遅延することがある。実時間オペレーティング・システム１２−１がタイム・スロットの先頭で実時間クリティカルイベントにサービスを行うことが必要な場合があるので、このことは問題になる可能性がある。
【００３３】
典型的なアーキテクチャでは、同じトランザクションに対してメモリ属性の複数の層が定められたとき、通常これらの属性は組み合わせられて、元の属性の中で最も制限的な属性に対応する結合属性を形成する。よって、あるトランザクションを１つの属性がデバイス・タイプとして指定し、他の属性がそれをノーマル・タイプとして指定した場合には、通常、そのトランザクションはデバイス・タイプにマークされる。しかし、実時間システムでは、図５に示されるように、これは高い割り込み遅延（レイテンシ）の問題を引き起こす。その理由は、より制限的なデバイス・タイプ属性の結果、実時間イベントへのサービスが過度に遅れることがあるからである。
【００３４】
この問題に対処するために、オペレーティング・システム１２の制御下で第１のＭＰＵ２０が定める第１のアクセス属性及び、ハイパーバイザ１０の制御下で第２のＭＰＵ２２が定める第２の属性を、図６に示されるように、別の方法で組み合わせることができる。第２のＭＰＵ２２がトランザクションをデバイス・タイプとすべきと定める場合には、全体的な属性は、第１のＭＰＵ２０が設定する対応する第１の属性の状態とは無関係に、デバイス・タイプとして設定される（図６の下の列を参照）。また、第１及び第２のＭＰＵ２０、２２の両方がトランザクションをノーマル・タイプとして設定する場合には、全体的な属性もまたノーマル・タイプとして設定される（図６の左上の欄を参照）。
【００３５】
しかし、あるトランザクションをハイパーバイザがノーマル・タイプとして指定し、そのトランザクションをオペレーティング・システムがデバイス・タイプとして設定する場合には（図６の右上の欄）、そのトランザクションの全体的なメモリ・アクセス属性の決定には処理回路が保持する制御値１００が使用される。制御値１００は、いくつかの方法で保持されてもよく、レジスタ８又はメモリ６の中などの、データ処理装置２の中の任意の場所に保管されてもよい。或いは、制御値１００は、図１に示されるように処理回路４内の場所に保管されてもよい。一実例では、処理回路４は、プロセッサ４の様々な特性を制御するいくつかの制御ビットを含む制御レジスタを有してもよく、メモリ属性の制御値１００がそれらの制御ビットのうちの１つであってもよい。また、第２のＭＰＵ２２が制御値１００を保持することもできる。
【００３６】
制御値１００は、ハイパーバイザがノーマル・タイプと指定した少なくとも１つの特定のタイプのデータ・アクセス命令について、ノーマル／デバイスのタイプ属性の設定を制御する。制御値が第１の値（例えば値１）を有する場合には、ハイパーバイザ１０のノーマル・タイプ設定がオペレーティング・システム１２の設定するデバイス・タイプに優先するように、トランザクションはノーマルとしてマークされる。それでも、トランザクションのその他の特性は、オペレーティング・システム１２が指定するデバイス状態に従って維持されてもよい。例えば、そのトランザクションが他のトランザクションに対して元の順序で処理されるという特性がデバイス・トランザクションに従って維持されてもよいが、そのトランザクションはノーマル・トランザクションに従って中断可能であってもよい。制御値が１の場合には、オペレーティング・システム１２がどちらの属性を指定しているかに関わらず、全体的な属性はハイパーバイザが指定する属性に設定されることに留意されたい。
【００３７】
一方、制御値１００が第２の値（例えば０）を有する場合には、ハイパーバイザが第２のＭＰＵ２２を使用してアクセスをノーマル・タイプと指定しているとしても、そのトランザクションは第１のＭＰＵ２０が設定する第１の属性に従ってデバイス・タイプとしてマークされることができる。このことは、そのデータ・アクセスがなおも中断不可能として取り扱われることを意味する。制御値１００が０の場合には、そのデータ・アクセスの全体的なアクセス属性は第１及び第２のＭＰＵ２０、２２が設定する属性のうち最も制限的なものに従って設定されるので、ハイパーバイザ１０又はオペレーティング・システム１２のどちらかがデバイス・タイプのアクセスを定める場合には、全体的な属性もまた、デバイス・タイプになる。
【００３８】
制御値１００は、例えばハイパーバイザ１０などのソフトウェアによって設定することができる。これにより、オペレーティング・システム１２によるデバイス・タイプの指示を破棄できるかどうかをハイパーバイザ１０が制御することが可能になる。実時間オペレーティング・システムの開始をトリガする割り込み６０などの実時間クリティカルなイベントの発生が予想される場合には、第１のＭＰＵ２０がトランザクションをデバイス・タイプと定めたとしても、トランザクションがなおもノーマルと見なされて中断可能になるように、制御値を１に設定することができる。したがって、図７に示されるように、ロード・マルチプル又はストア・マルチプル命令が非実時間オペレーティング・システム１２−２によって開始されたとしても、割り込み６０−１が発生するとロード・ストア・マルチプル命令が中断されて、オペレーティング・システム１２−１が実時間イベントを処理することができる。非実時間オペレーティング・システム１２−２がプロセッサ４上で次のスロットを受け取ると、ロード・マルチプル又はストア・マルチプル命令は再始動又は再開されることができる。一方、実時間クリティカルイベントが予想されない場合には、あるトランザクションをオペレーティング・システム１２がデバイス・タイプと指定する場合には、そのトランザクションをデバイス・タイプとして扱って中断不可能にすべきであることを示すために、ハイパーバイザは制御値を０に設定することができる。
【００３９】
図６に示されるアクセス属性の決定は第２のＭＰＵ２２によって行われてもよく、ＭＰＵ２２は第１のＭＰＵ２０から第１の属性を受け取り、自身が検索した第２の属性と組み合わせて全体的な属性を形成してもよい。或いは、第１及び第２の両方の属性がメモリ６に提供されてもよく、アクセスがメモリ６によってどのように扱われるかを決定する結合属性を決定するための制御ロジックを、メモリ６が有してもよい。
【００４０】
図６に示される実例では、１の制御値はハイパーバイザの「ノーマル」属性がオペレーティング・システムの「デバイス」属性に優先すべきであることを示し、０の制御値はオペレーティング・システムの「デバイス」属性が使用されるべきであることを示すが、他の実例では、０と１の意味が入れ替えられるように、逆のマッピングが使用されてもよい。図６に示される技術は、ロード・マルチプル命令若しくはストア・マルチプル命令、又は中断不可能な場合に長い遅延を引き起こすことが予想されるその他のデータ・アクセス命令などの所定のタイプのデータ・アクセス命令にのみ使用されてもよい。この技術は、その他の実例では全てのデータ・アクセス命令に使用されることもできる。図６に示される技術が使用されない命令に対しては、第１及び第２のＭＰＵ２０、２２が指定するそれぞれの属性のうち、より制限的な方の属性が使用されてもよい（制御値１００が図６の値０を持つ場合と同様）。
【００４１】
また、制御値１００を使用せずに本発明の技術を実装することも可能である。この場合、所定のタイプの命令に対して、ＭＰＵ２２が常に第１のＭＰＵ２０に優先することができ、あるトランザクションをハイパーバイザ１０が「ノーマル」タイプと指定すると、オペレーティング・システム１２がそれを「デバイス」タイプと指定したとしても、そのトランザクションは中断可能になる。
【００４２】
また、図６に示される技術は、所定のタイプのデータ・アクセス命令が基本特権レベルＥＬ０又は第１の特権レベルＥＬ１で実行されるときにのみ使用されてもよい。ハイパーバイザ・レベルＥＬ２で実行されるデータ・アクセス命令はこの技術に従わなくともよく、代わりに、第１のＭＰＵ２０が同じアドレスに設定するどのような属性にも無関係に、第２のＭＰＵ２２が設定した権限に基づいてデバイス・タイプ又はノーマル・タイプの命令として扱われてもよい（図６の、制御値１の場合と同様）。
【００４３】
いくつかのシステムでは、この技術はより一般的に適用されて制御ビット１００を提供し、高い特権レベルで実行しているソフトウェアがこの制御ビットを設定して、低い特権レベルで実行している所定のタイプのデータ・アクセス命令が中断可能か否かを制御してもよい。すなわち、特権レベルの高いソフトウェアと特権レベルの低いソフトウェアがそれぞれ特権レベルＥＬ２、ＥＬ１で実行している必要はなく、その代わり、特権レベルの階層の中の任意の２つの特権レベルで動作していてもよい。
【００４４】
図８は、あるデータ・アクセス命令のメモリ・アクセス属性を決定する方法の実例を概略的に示す。ステップ１００で、プロセッサ４が所定のデータ・アクセス（この実例では、基本特権レベルＥＬ０又は第１の特権レベルＥＬ１で実行しているソフトウェアからのロード・マルチプル命令又はストア・マルチプル命令）を実行しようとしているか判断される。そのように判断されない場合には、そのデータ・アクセス命令のメモリ・アクセス属性は、従来技術で知られる方法などの他の方法で決定される。一方、特権レベルＥＬ０又はＥＬ１でロード・マルチプル又はストア・マルチプル命令に遭遇した場合には、方法はステップ１０２に進み、第２のＭＰＵ２２がその命令の第２の属性を決定する。第２の属性がデバイス・タイプである場合には、ステップ１０４でその命令の全体的なアクセス属性がデバイス・タイプとして決定され、その命令がメモリ６に発行される。したがって、このデータ・アクセスは中断もリオーダーもできないので、プロセッサ４は、他のアクセスを実行する前にそのロード・マルチプル又はストア・マルチプル命令の完了を託される。
【００４５】
一方で、ステップ１０２で第２のＭＰＵがそのデータ・アクセスがノーマル・タイプのアクセスであると判断した場合には、ステップ１０６で第１のＭＰＵ２０がそのデータ・アクセス命令の属性を決定する。実際には、ステップ１０２及び１０６は、それぞれＭＰＵ２０、２２によって並列に行われてもよいし、又はステップ１０２の前にステップ１０６が行われてもよい。ステップ１０６で第１のＭＰＵ２０が決定した第１の属性がノーマルである場合（すなわち、両方のＭＰＵ２０、２２がそのアクセスをノーマルと定めた）には、ステップ１０８で、この命令についての全体的なアクセス属性１００はノーマルと決定される。したがって、マルチプル・ロード又はマルチプル・ストア命令は必要なら中断可能である。
【００４６】
一方で、ステップ１０６で属性がデバイス・タイプである（すなわち、そのトランザクションをハイパーバイザ１０がノーマルと定め、オペレーティング・システムがデバイスとして定めている）と判断された場合には、ステップ１１０で、システムは制御ビット１００をチェックする。制御ビットが第１の値（この実例では１）を有する場合には、ステップ１１２で全体的な属性がノーマルとして設定され、その命令が中断不可能であることを示す。したがって、オペレーティング・システム１２が設定したデバイス・タイプの指示をハイパーバイザが破棄したことになる。しかし、オペレーティング・システム１２が設定したデバイス・タイプの指示に関連する、そのトランザクションの少なくとも１つの他の特性は維持されてもよい。例えば、そのトランザクションがメモリバス上に元の順序で提示されるように、そのトランザクションが他のトランザクションに比してリオーダーされてはならないという事項は維持されてもよい。また、オペレーティング・システム１２に従って第１のＭＰＵ２０が定めたキャッシュ読み出し／書き込みポリシー情報もまた維持されてもよい。一方で、制御ビット１１０が第２の値（例えば０）を有する場合には、その命令がメモリ６に発行されたときに中断不可能になるように、ステップ１１４で、その命令の属性がデバイス・タイプとして設定される。この場合、第１のＭＰＵ２０が提供する、より制限的なデバイスの指示が採用される。
【００４７】
本明細書では添付の図面を参照しながら説明的な実施例について詳細に記載したが、本発明がこれらの厳密な実施例に限定されないこと、及び、添付の特許請求の範囲によって定められるとおりの本発明の範囲を逸脱することなく当業者によって様々な変更及び増倍が行われることが可能であることを理解されたい。
【図１】
0006511446.tif 000002
【図２】
0006511446.tif 000003
【図３】
0006511446.tif 000004
【図４】
0006511446.tif 000005
【図５】
0006511446.tif 000006
【図６】
0006511446.tif 000007
【図７】
0006511446.tif 000008
【図８】
0006511446.tif 000009