(57)【要約】マイクロプロセッサシステムにおけるセキュアな動作の間に、システム管理モード（ＳＭＭ）コードの実行を可能にするためのシステム及び方法について開示している。一実施形態において、システム管理割り込み（ＳＭＩ）は、セキュアな仮想マシンモニタ（ＳＶＭＭ）におけるハンドラに、先ず、命令されることが可能である。ＳＭＩは、次いで、ＳＶＭＭのセキュリティ制御の下にある仮想マシン（ＶＭ）において位置付けられたＳＭＭコードに再命令されることが可能である。この再命令は、プロセッサにおけるシステム管理（ＳＭ）ベースのレジスタから読み出す及び書き込むことを可能にすることにより達成されることが可能である。
2005529401.tif 000002
【特許請求の範囲】
【請求項１】
サブオペレーティングシステムモード割り込みを受けるために、ユーザモードと、管理モードと、サブオペーティングシステムモードとにおいて動作するプロセッサ；
第１仮想マシンに含まれる第１コード；及び
前記第１コードへの前記サブオペレーティングシステムモード割り込みを再命令するために第２仮想マシンにおける高信頼性のコードに含まれる第１ハンドラ；
から構成されることを特徴とするシステム。
【請求項２】
請求項１に記載のシステムであって、前記の高信頼性のコードは、前記プロセッサにおける割り込みサービスレジスタに書き込むようにする、ことを特徴とするシステム。
【請求項３】
請求項２に記載のシステムであって、前記割り込みサービスレジスタはシステム管理ベースレジスタであり、前記サブオペレーティングシステムモード割り込みはシステム管理割り込みである、ことを特徴とするシステム。
【請求項４】
請求項１に記載のシステムであって、前記第１コードはページモードにおいて実行するようにする、ことを特徴とするシステム。
【請求項５】
請求項４に記載のシステムであって、前記第１コードはシステム管理モードコードである、ことを特徴とするシステム。
【請求項６】
請求項１に記載のシステムであって、メモリのロックされたページへのアクセスを試みるときに呼び出される前記の高信頼性のコードにおける第２ハンドラから更に構成される、ことを特徴とするシステム。
【請求項７】
請求項６に記載のシステムであって、前記第２ハンドラは、前記メモリの前記のロックされたページへのアクセスが可能であるかどうかを判定する、ことを特徴とするシステム。
【請求項８】
請求項６に記載のシステムであって、前記第２ハンドラは、修正されたレジューム命令を発行することにより前記第１コードからのエグジットを開始する、ことを特徴とするシステム。
【請求項９】
請求項８に記載のシステムであって、前記の修正されたレジューム命令はページモードにおいて実行できる、ことを特徴とするシステム。
【請求項１０】
請求項１に記載のシステムであって、前記第１ハンドラは、状態データを記憶するためにメモリのロックされたページにおいて空間を確立する、ことを特徴とするシステム。
【請求項１１】
請求項１に記載のシステムであって、前記第１コードはメモリのロックされていないページにおいて位置付けられる、ことを特徴とするシステム。
【請求項１２】
請求項１に記載のシステムであって、前記システムは単一のプロセッサシステムから構成される、ことを特徴とするシステム。
【請求項１３】
請求項１に記載のシステムであって、前記の高信頼性のコードは前記プロセッサにおける割り込みサービスレジスタを無効にするようにする、ことを特徴とするシステム。
【請求項１４】
請求項１３に記載のシステムであって、前記割り込みサービスレジスタはシステム管理ベースのレジスタであり、前記の第１の割り込みはシステム管理割り込みである、ことを特徴とするシステム。
【請求項１５】
請求項１に記載のシステムであって、前記の高信頼性コードにおける前記第１ハンドラは、メモリのロックされたページへのアクセスの試みのときに呼び出される、ことを特徴とするシステム。
【請求項１６】
請求項１５に記載のシステムであって、前記第１ハンドラは、前記メモリの前記のロックされたページへのアクセスが可能であるかどうかを判定する、ことを特徴とするシステム。
【請求項１７】
請求項１５に記載のシステムであって、前記第２ハンドラは、前記メモリの前記のロックされたページへのアクセスが可能であるかどうかを判定する、ことを特徴とするシステム。
【請求項１８】
請求項１に記載のシステムであって、前記の修正されたレジューム命令はページモードにおいて実行できる、ことを特徴とするシステム。
【請求項１９】
第２仮想マシンにおける高信頼性のコードにおいて第１ハンドラへのサブオペレーティングシステムモード割り込みを命令する段階；
メモリにおいてロックされたページにおいて状態を記憶する段階；及び
第１仮想マシンにおいて第１コードをエントリする段階；
から構成されることを特徴とする方法。
【請求項２０】
請求項１９に記載の方法であって、前記第１コードから前記の高信頼のコードにおいて第２ハンドラを呼び出す段階から更に構成される、ことを特徴とする方法。
【請求項２１】
請求項２０に記載の方法であって、前記呼び出しは、前記第１コードがメモリにおいて前記のロックされたページにアクセスすることに続く、ことを特徴とする方法。
【請求項２２】
請求項１９に記載の方法であって、前記第１コードはシステム管理モードコードである、ことを特徴とする方法。
【請求項２３】
請求項１９に記載の方法であって、前記第１コードから前記高信頼性コードにおいて第２ハンドラを呼び出す段階から更に構成される、ことを特徴とする方法。
【請求項２４】
請求項２３に記載の方法であって、前記第呼び出しは、前記第１コードがメモリにおいて前記のロックされたページにアクセスすることに続く、ことを特徴とする方法。
【請求項２５】
請求項１９に記載の方法であって、ページモードから修正されたレジューム命令を実行する段階から更に構成される、ことを特徴とする方法。
【請求項２６】
請求項１９に記載の方法であって、前記第１コードがメモリにおいて前記のロックされたページにアクセスすることが可能であるかどうかを判定する段階から更に構成される、ことを特徴とする方法。
【請求項２７】
請求項１９に記載の方法であって、前記命令する段階は、割り込みサービスレジスタに前記の高信頼性コードにおけるメモリ位置を書き込む手順を含む、ことを特徴とする方法。
【請求項２８】
請求項２７に記載の方法であって、前記割り込みサービスレジスタはシステム管理ベースのレジスタである、ことを特徴とする方法。
【請求項２９】
請求項１９に記載の方法であって、前記サブオペレーティングシステムモード命令はシステム管理割り込みである、ことを特徴とする方法。
【請求項３０】
請求項１９に記載の方法であって、前記第１コードから前記高信頼性コードにおいて前記第１ハンドラを呼び出す段階から更に構成される、ことを特徴とする方法。
【請求項３１】
請求項３０に記載の方法であって、前記呼び出しは、前記第１コードがメモリにおいて前記のロックされたページにアクセスすることに続く、ことを特徴とする方法。
【請求項３２】
修正されたレジューム命令を実行するための第１論理；及び
セキュアなエンター命令の実行に続いて書き込まれることができる割り込みサービスレジスタ；
から構成されることを特徴とするプロセッサ。
【請求項３３】
請求項３２に記載のプロセッサであって、前記の修正されたレジューム命令は、第１コードの実行に続いて前のプログラムの実行に前記プロセッサを戻す、ことを特徴とするプロセッサ。
【請求項３４】
請求項３３に記載のプロセッサであって、前記の修正されたレジューム命令はページモードから実行されることが可能である、ことを特徴とするプロセッサ。
【請求項３５】
請求項３３に記載のプロセッサであって、前記第１コードの前記実行はサブオペレーティングシステムモードにおいて生じる、ことを特徴とするプロセッサ。
【請求項３６】
請求項３５に記載のプロセッサであって、前記サブオペレーティングシステムモードはシステム管理モードである、ことを特徴とするプロセッサ。
【請求項３７】
請求項３２に記載のプロセッサであって、前記割り込みサービスレジスタはシステム管理ベースのレジスタである、ことを特徴とするプロセッサ。
【請求項３８】
修正されたレジューム命令を実行するための第１論理；及び
モニター初期設定命令の実行に続いて無効にされることができる割り込みサービスレジスタ；
から構成されることを特徴とするプロセッサ。
【請求項３９】
請求項３８に記載のプロセッサであって、前記の修正されたレジューム命令は、第１コードの実行に続いて前のプログラムの実行に前記プロセッサを戻す、ことを特徴とするプロセッサ。
【請求項４０】
請求項３９に記載のプロセッサであって、前記の修正されたレジューム命令はページモードから実行されることが可能である、ことを特徴とするプロセッサ。
【請求項４１】
請求項３９に記載のプロセッサであって、前記第１コードの前記実行はサブオペレーティングシステムモードにおいて生じる、ことを特徴とするプロセッサ。
【請求項４２】
請求項４１に記載のプロセッサであって、前記サブオペレーティングシステムモードはシステム管理モードである、ことを特徴とするプロセッサ。
【請求項４３】
請求項３８に記載のプロセッサであって、前記割り込みサービスレジスタはシステム管理ベースのレジスタである、ことを特徴とするプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の開示は、一般に、マイクロプロセッサに関し、更に詳細には、高信頼又は安全環境において機能することが可能であるマイクロプロセッサシステムに関する。
【背景技術】
【０００２】
プロセッサは、システム動作の即時要求による幾つかのプロセッサの動作モードにおいて動作することが可能である。一般に、プロセッサは、スーパバイザモード、ユーザモード及び、あるときは特定目的モードを有することが可能である。スーパバイザモードはオペレーティングシステムの実行を支援することが可能であり、特権命令を含む殆どの命令の実行を可能にする。異なるアドレス空間及び周辺装置へのアクセスを特権モードで与えることが可能である。ユーザモードは、特権モードに照らして、被特権命令に制限されることが可能であり、それ故、ユーザコードは、システムの機能性を混乱させることはない。
【０００３】
商業的にリリースされたソフトウェアは、特定のオリジナルの装置製造業者の（ＯＥＭの）ハードウェアのパッケージソフトに完全に適応しない場合がしばしばある。仕様についての誤解又は実行エラーのために、ハードウェアにより支援されない又は見込まれない方法で、ソフトウェアがハードウェアにアクセスするように試みる状態が存在し得る。簡単な例としては、ソフトウェアの問題がアドレスｘのレジスタに値を置く一方、ハードウェアにおける実際のレジスタはアドレスｘ＋ｙにあることがあり得る。これは、システムの例外の原因となり得る。
【０００４】
そのような状態に対処するために、プロセッサは、低レベルのパッチを実行する目的で、特権レベルに依存しない方法で、又は特権レベルにトランスペアレント又は擬似トランスペアレントな方法で動作する能力を有する動作モードを支援するようにデザインされることが可能である。本出願の目的のために、そのようなモードを、“サブオペレーティングシステムモード”と定義することが可能である。１つのそのようなモードは、インテル（登録商標）のペンティアム（登録商標）プロセッサのファミリ及び互換性のあるプロセッサのシステム管理モード（ＳＭＭ：Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｍｏｄｅ）である。他のサブオペレーティングシステムモードは、ＭＩＰＳ  Ｔｅｃｈｎｏｌｏｇｉｅｓ（登録商標）ＭＩＰＳ３２（登録商標）又はＭＩＰＳ６４（登録商標）アーキテクチャプロセッサ、ＩＢＭ（登録商標）ＰｏｗｅｒＰＣ（登録商標）アーキテクチャプロセッサ、ＳＰＡＲＣ  Ｉｎｔｅｒｎａｔｉｏｎａｌ（登録商標）ＳＰＡＲＣ（登録商標）アーキテクチャプロセッサ、又は他の多くのプロセッサにおいて存在し得る。サブオペレーティングシステムの存在は、パワーダウンモードへの移行の支援のような付加的なシステム
の利益を有することが可能である。上記で概観したようなソフトウェアとハードウェアのミスマッチに対処するために、既存のサブオペレーティングシステムモードの実行は、特権制限又はアドレスマッピング制限を有しない。サブオペレーティングシステムモードは、専用サブオペレーティングシステムモードの割り込みにより呼び出されることが可能であり、ときどき、システムファームウェア又はシステムハードウェアにより生成されることが可能である。この専用サブオペレーティングシステムモードの割り込みは、通常、そのモードへのエントリを必要とした緊急性に応答するために、マスク不可能であるようにデザインされている。
【０００５】
サブオペレーティングシステムモードは、一般に、次のような主要機構を有することが可能である。そのモードに入る唯一の方法は、特定のサブオペレーティングシステムモードの割り込みによるものである。ＳＭＭの場合、専用サブオペレーティングシステムモードの割り込みはシステム管理の割り込み（ＳＭＩ：Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｒｕｐｔ）と呼ばれている。プロセッサは、別個のアドレス空間においてモードのコードを実行することが可能である。例えば、そのモードがＳＭＭである場合、別個のアドレス空間は、ＳＭＲＡＭ（Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｒａｎｄｏｍ−Ａｃｃｅｓｓ−Ｍｅｍｏｒｙ）へのアクセスを可能にし、ＳＭＲＡＭは他のオペレーティングモードにアクセス不可能にされる。そのモードに入るとき、プロセッサは、別個のアドレス空間において割り込みされたプログラム又はタスクのコンテキストを保存する。例えば、ＳＭＭにおいて、コンテキストはＳＭＲＡＭに保存される。そのモードにおける実行の間に、普通の割り込みは無効になる。最終的に、そのモードは、そのモードにおいて実行する間にのみ実行されることが可能であるレジューム命令により終了されることが可能である。
【０００６】
ローカルマイクロコンピュータ又はリモートマイクロコンピュータにおいて実行される金融取引及び個人取引の著しい増加は、“高信頼性の”又は“セキュアな”マイクロプロセッサ環境の確立のための推進力を提供している。これらの環境が解決しようとしている問題は、プライバシーの損失、並びにデータへの悪影響又は悪用である。ユーザは、彼らのプライベートなデータが公になることを望んでいない。ユーザは又、彼らのデータが改竄されたり不適切な取引で使用されたりすることを望まない。このような例は、医療記録の国内における公開、又はオンラインバンク又は他のデポジトリーバンクからの資金の電子盗難を含む。同様に、コンテンツプロバイダは、デジタルコンテンツ（例えば、音楽、他の音声、映像、又は一般的な他のタイプのデータ）が認証なしにコピーされることから保護しようと努めている。
【０００７】
ＳＭＭのような、サブオペレーティングシステムモードの在り方は、セキュア及び高信頼性システムのデザイナーにとってのデザインの課題である。そのようなサブオペレーティングシステムモードが特権制限又はアドレスマッピング制限を有していないという事実は、セキュア又は高信頼性システムアーキテクチャとは相容れないものである。そして、このような特権制限又はアドレスマッピング制限の不足は、これらが通常マスク不可能であるようにデザインされているため、しばしば、モードの専用の割り込み等のマスキングを試みることによって回避されるようにすることはできない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
以下の説明は、マイクロプロセッサシステムにおける高信頼性又はセキュアな環境における特定のシステム管理モードのコードの実行を可能にするための技術に関するものである。以下の説明においては、例えば、論理の実施、ソフトウェアモジュール割り当て、暗号化技術、バスシグナリング技術及びオペレーションの詳細等の多くの仕様の詳細について、本発明の全体を通してのよりよい理解を提供するように説明している。しかしながら、本発明はそのような特定の詳細を用いないで実行されることが可能であることが、当業者には理解されるであろう。他の例においては、制御構成、ゲートレベルの回路及び全部のソフトウェア命令シーケンスについては、本発明を理解し難くしないように、詳細を示すことはしない。盛り込んでいる説明を用いて、当業者は、過度の実験をすることなく、適切な機能性を実施することが可能となるであろう。本発明は、マイクロプロセッサシステムの形式で開示している。しかしながら、本発明は、例えば、デジタル信号プロセッサ、マイクロコンピュータ又はメインフレームコンピュータのような他の方式のプロセッサにおいて実行されることが可能である。
【発明を実施するための最良の形態】
【０００９】
セキュアな及び高信頼性の環境において制限されたサブオペレーティングシステムモードコードを可能にするために、そのサブオペレーティングシステムモードの割り込みは、システムリソースへの仮想マシンアクセスを制御する高信頼性コードにおいてハンドラに先ず命令されることが可能である。そのハンドラへの命令は、そのようなサブオペレーティングシステムモードの割り込みを行うために必要なコードの位置を含むプロセッサにおいて割り込みサービスレジスタに高信頼性コードが書き込む及びそれから読み出すことを可能にすることにより、達成されることが可能である（割り込みサービスレジスタは、一般に、割り込みの受信において実行される必要があるそのコードを決定するために用いられるレジスタとして定義される）。サブオペレーティングシステムモードの割り込みは、次いで、割り込みサービスに対して、上記の高信頼性モードのセキュリティ制御の下にある他の仮想マシンに位置付けられたサブオペレーティングシステムモードのコードに対して再命令される。代替として、マイクロプロセッサの仮想化アーキテクチャは、高信頼性コードが確立されたとき、サブオペレーティングシステムモードの割り込みは、もはや、標準的な割り込みサービスレジスタを用いることはないが、それに代えて、仮想化アーキテクチャと整合性がとれた高信頼性コードへの移行をもたらす。
【００１０】
サブオペレーティングシステムモードがシステム管理モード（ＳＭＭ）である例示としての場合、セキュアな又は高信頼性の環境におけるＳＭＭコードの実行は、システム管理の割り込み（ＳＭＩ）がセキュアな仮想マシンモニタ（ＳＶＭＭ：Ｓｅｃｕｒｅｄ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）におけるハンドラに命令されるようにすることにより開始されることが可能である。このハンドラへの命令は、ＳＶＭＭがプロセッサ（ＰＳＭＢＡＳＥ）におけるシステム管理ベース（ＳＭＢＡＳＥ）のレジスタに書き込み及びそれから読み出すことを可能にすることにより、達成されることが可能である。ＳＭＩは、次いで、ＳＶＭＭのセキュリティ制御の下にある仮想マシン（ＶＭ）に位置付けられたＳＭＭコードに再命令される。代替として、プロセッサの仮想化アーキテクチャは、ＰＳＭＢＡＳＥレジスタの使用を無効にし、直接、ＳＶＭＭへのＳＭＩ全ての再命令をもたらすことが可能である。
【００１１】
一実施形態において、ＳＭＭコードは、メモリにおける保護されたページを除いて、システムリソース全てへのアクセス、及びこの保護を維持する関連システム制御を許可されることが可能である。これを達成するために、セキュアにされた動作の初期設定の後、ＳＭＩは、先ず、ＳＶＭＭにおいてハンドラに対して命令されることが可能である。このハンドラは、ＳＭＭモードに対して適切な仮想マシン（ＶＭ）コンテナを確立し、そのコードにＳＭＩを再命令することが可能である。ＶＭコンテナにおいてＳＭＭコードを実行することにより、ＳＭＭコードは、ＳＶＭＭが保護されたとみなされた、メモリのような種々のシステムリソースにアクセスしないようにされることが可能である。一実施形態においては、ここで、ＶＭの要求を確認するために、ＳＭＭコードが書き込まれることが可能である。１つのそのような変化の確認は、ＳＭＭコードがフラット保護モードか又は一部の他のページメモリアクセスモードのどちらかにおいて書き込まれることである。
【００１２】
ここで、図１を参照するに、システム管理ランダムアクセスメモリ（ＳＭＲＡＭ：Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）におけるシステム管理モード（ＳＭＭ）コードのメモリマッピングが一実施形態において示されている。標準的システムの初期設定の間、システムランダムアクセスメモリ（ＲＡＭ）１１０のセクションは、ＳＭＭコードによる独占使用のために除外される。この除外されたセクションは、システム管理ＲＡＭ（ＳＭＲＡＭ）と呼ばれる。ＳＭＲＡＭにおける特定のメモリ位置は、チップセット又はプロセッサにおける割り込みサービスレジスタにより指し示されることが可能であり、そのチップセット又はプロセッサは、一実施形態において、システム管理ベースの（ＳＭＢＡＳＥ）レジスタと呼ばれる。
【００１３】
チップセットＳＭＢＡＳＥレジスタのコンテンツＣＳＭＢＡＳＥは、ＳＭＲＡＭの境界を規定することが可能である。例えば、ＳＭＲＡＭは、ＣＳＭＢＡＳＥ１２０とＣＳＭＢＡＳＥ＋ＦＦＦＦｈｅｘ１３２との間の空間を占めることが可能である。他の実施形態においては、同時にＳＭＭコードを実行する２つ又はそれ以上のプロセッサを支援するために、各々のプロセッサはそれ自体の専用ＳＭＲＡＭ空間を有することが可能である。プロセッサのＳＭＢＡＳＥレジスタコンテンツＰＳＭＢＡＳＥは、ＳＭＲＡＭにおける状態保存位置及びコードエントリポイントを規定することが可能である。例えば、ＳＭＲＡＭにおいて、標準的コードエントリポイントは、ＣＳＭＢＡＳＥ＋８０００ｈｅｘ１２４に位置付けられることが可能である。ＣＳＭＢＡＳＥの値は、各々のプロセッサのＳＭＢＡＳＥレジスタに対するシステム初期設定において書き込まれることが可能であり、これにより、各々のプロセッサはＳＭＩの受信においてＳＭＭコードエントリポイントに進むことが可能である。ＳＭＭコードへのエントリに先立ち、プロセッサは、一実施形態において、アドレスＰＳＭＢＡＳＥ＋ＦＥ００ｈｅｘ１２８とＳＭＢＡＳＥ＋ＦＦＦＦｈｅｘ１３２の位置におけるＳＭＲＡＭの端部との間の状態保存領域に状態データを記憶することが可能である。他の実施形態においては、同時にＳＭＭコードを実行する２つ又はそれ以上のプロセッサを支援するために、各々のプロセッサのＳＭＢＡＳＥレジスタは、異なるコードエントリポイント及び状態データを記憶するための位置を可能にする、ＰＳＭＢＡＳＥの異なる値を含むことが可能である。
【００１４】
状態データは、制御レジスタの値、フラッグ、自動中断再起動フィールド、入力／出力（Ｉ／Ｏ）命令再起動フィールド及びＳＭＭリビジョン識別子を含むことが可能である。ＳＭＲＡＭにおける位置の一部は、ＳＭＩハンドラにより修正されることが可能である。ＳＭＭコードの実行の完了に際して、オリジナルプログラムは、プロセッサがレジューム（ＲＳＭ）命令を実行するとき、再エントリされることが可能である。この既存のＲＳＭ命令はＳＭＭ命令においてのみを発行されることが可能であり、ＳＭＲＡＭにおいて予め記憶された状態値をもとに戻す。この既存のＳＭＭデザインは当該技術分野において周知である。
【００１５】
ここで、図２を参照するに、本発明の一実施形態に従って、例示としての高信頼性又はセキュアなソフトウェア環境を示している。図２の実施形態においては、高信頼性の及び信頼性のないソフトウェアが同時に位置付けられており、それらを単一のコンピュータシステムにおいて同時に実行することが可能である。ＳＶＭＭ２５０は、信頼性の内オペレーティングシステム２４０（又は、複数の信頼性のない仮想マシンが実行される場合の複数のオペレーティングシステム）及び信頼性のない装置２１０乃至２３０からハードウェアしロース２８０への直接アクセスを選択的に可能にする又は回避する。これに関連して、“信頼性のない”は、オペレーティングシステム又はアプリケーションが故意に不正な挙動を示すが、相互作用するコードの種類及びサイズは、ソフトウェアが所望のように挙動し、その実行に干渉する他の外部からのコード又はウィルスが存在しないことを確実に実証することを非現実的にする。代表的な実施形態においては、信頼性のないコードは、標準的なオペレーティングシステム及び今日のパーソナルコンピュータにおいて見られるアプリケーションから構成されることが可能である。
【００１６】
ＳＶＭＭ２５０は又、１つ又はそれ以上の高信頼性又はセキュアなカーネル２６０及び１つ又はそれ以上の高信頼性アプリケーション２７０からハードウェアリソース２８０への直接アクセスを選択的に可能にする又は回避する。そのような高信頼性の又はセキュアなカーネル２６０及び高信頼性のアプリケーション２７０は、それにおいて高信頼性分析を実行する能力において支援するようにサイズ及び機能性を制限されることが可能である。高信頼性のアプリケーション２７０を、セキュアな環境において実行可能である、いずれのソフトウェアコード、プログラム、ルーチン又はルーチンの集合とすることが可能である。このように、高信頼性のアプリケーション２７０は、種々のアプリケーション又はコードシーケンスであることが可能であり、又、Ｊａｖａ（登録商標）アプレットのような比較的小さいアプリケーションであることが可能である。
【００１７】
システムリソース保護又は特権を変えることが可能であるオペレーティングシステム２４０又はカーネル２６０により標準的に実行される命令又は動作は、ＳＶＭＭ２５０により捕捉され、選択的に可能にされ、部分的に可能にされ、又は拒否される。例として、代表的な実施形態において、オペレーティングシステム２４０又はカーネル２６０を動作させることにより標準的に実行されるプロセッサのページテーブルを変化させる命令は、それに代えて、ＳＶＭＭ２５０により捕捉される。そのＳＶＭＭ２５０は、要求が仮想マシンの領域の外側のページ特権を変化させないように試みることを確実にする。このシステムを視認化する１つの方法は、オペレーティングシステム２４０、カーネル２６０及びＳＶＭＭ２５０が、ＳＶＭＭ２５０仮想マシンにおいて実行するカーネル２６０仮想マシン及びオペレーティングシステム２４０仮想マシンを有する、全てが仮想マシンであることである。このようにして、仮想マシンの階層が構成される。ここでは、一実施形態において、仮想マシンは、システムのリソース全ての独占的な制御を有する特徴を各々のユーザに与えるいずれの複数のユーザの共有リソースのオペレーティングシステムとして定義されることが可能であり、又、仮想マシンは又、基本となる制御プログラムにより次に管理されるオペレーティングシステムと定義されることが可能である。
【００１８】
図３を参照するに、図２のセキュアなソフトウェア環境を支援するために適応されたマイクロプロセッサ３００の一実施形態を示している。ＣＰＵ  Ａ３１０、ＣＰＵ  Ｂ３１４、ＣＰＵ  Ｃ３１８及びＣＰＵ  Ｄ３２２は、特定命令の実行を支援するために論理回路又は付加マイクロコードから構成されることが可能である。一実施形態において、プロセッサは、本発明の実施形態に従って特定の特別な修正を有するＩｎｔｅｌ（登録商標）のＰｅｎｔｉｕｍ（登録商標）クラスのマイクロプロセッサとすることが可能である。これらの特別な命令は、プロセッサにおけるＳＶＭＭ２５０動作の正確な同期を可能にするシステムバス３２０における特別なバスメッセージの発行を支援することが可能である。同様に、シップセット３３０は、システムバス３２０において、上記の特別なサイクルを支援することが可能である。物理プロセッサの数は、特定の実施形態の実行の再に変化することが可能である。
【００１９】
図３の実施形態においては、４つのプロセッサ、ＣＰＵ  Ａ３１０、ＣＰＵ  Ｂ３１４、ＣＰＵ  Ｃ３１８及びＣＰＵ  Ｄ３２２が、４つの別個のハードウェアエンティティとして示されている。他の実施形態においては、プロセッサの数は異なることが可能である。実際には、プロセッサは、別個のスレッドであって、各々が物理プロセッサの一において実行する、スレッドにより置き換えられる。後者の場合、これらのスレッドは、付加物理プロセッサの多くの属性を処理する。複数の物理プロセッサ及びプロセッサに関する複数のスレッドのいずれの混合を用いて検討するように総称表現を有するために、表現“論理プロセッサ”を、物理プロセッサか又は物理プロセッサの１つにおいて動作するスレッドを表すために用いることが可能である。このようにして、１つの単一のスレッドプロセッサは論理プロセッサであるとみなすことが可能であり、複数のスレッド又は複数のコアプロセッサは複数の論理プロセッサとみなされることが可能である。
【００２０】
一実施形態において、プロセッサへの修正は、レジスタの挙動への変化及び新しい又は修正された命令を含むことが可能である。例えば、一実施形態において、ＣＰＵ  Ｃ３１８は、新しい命令のセキュアなエンター（ＳＥＮＴＥＲ）を含むことが可能である。ＳＥＮＴＥＲ３２４命令は、実行に際して、上記の図２において示したように、セキュアな又は高信頼性の動作の初期設定を可能にする。ＳＥＮＴＥＲ３２４は、複数の論理プロセッサがセキュアな又は高信頼性の動作へのそれらのエントリを同期することを可能にする。一実施形態において、ＳＥＮＴＥＲ３２４は又、セキュアな又は高信頼性のＳＭＭ動作を支援するために特定の状況においてＣＰＵ  Ｃ３１８のＰＳＭＢＡＳＥレジスタ３１６への書き込みを可能にする。
【００２１】
一実施形態において、ＣＰＵ  Ｃ３１８は又、修正されたレジューム（ＲＳＭ）３２６命令を含むことが可能である。修正されたＲＳＭ３２６は、セキュアな又は高信頼性の動作を支援するＳＭＭからのリターンを可能にする。従来のＲＳＭ命令はＳＭＭからのみ実行されることが可能である。修正されたＲＳＭ３２６は、標準的なページもドから実行されることが可能である。有効にされたＶＭ拡張子と共に呼び出されるとき、修正されたＲＳＭ３２６命令は、ＳＭＩに対するＳＶＭＭに戻る、ＶＭｅｘｉｔと呼ばれる、特別なシステムコールを実行することが可能である。
【００２２】
チップセット３３０は、システムバス３２０においてＣＰＵからもたらされた要求を書き込む又はそれを読み出すために役立つ。メモリ３３４におけるＳＭＲＡＭの配分を、ＣＳＭＢＡＳＥの値を含むチップセットＳＭＢＡＳＥレジスタ３３１により容易にすることが可能である。チップセット３３０は、高性能グラフィクポート（ＡＧＰ）３３６のような専用の入力／出力（Ｉ／Ｏ）チャネルに接続されることが可能である。チップセット３３０は、ＣＰＵ  Ａ３１０、ＣＰＵ  Ｂ３１４、ＣＰＵ  Ｃ３１８及びＣＰＵ  Ｄ３２２から、及び付加的にはＩ／Ｏ装置から、物理メモリ３３４におけるメモリのページへのアクセスを制御することが可能である。そのような装置は、固定媒体３４４又はリムーバブル媒体３４８のような大容量記憶装置を含むことが可能である。固定媒体３４４又はリムーバブル媒体３４８は、磁気ディスク、磁気テープ、磁気ディスケット、光磁気ドライブ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、フラッシュメモリカード、又は他の方式の大容量記憶装置とすることが可能である。固定媒体３４４又はリムーバブル媒体３４８は、周辺装置の構成要素の相互接続（ＰＣＩ）バス３４６により、若しくは、代替として、ユニバーサルシリアルバス（ＵＳＢ）３４２，統合制御器エレクトロニクス（ＩＤＥ）バス（図示せず）又は小型コンピュータシステムの相互接続（ＳＣＳＩ）バス（図示せず）により、チップセット３３０に接続されることが可能である。
【００２３】
ＳＶＭＭ３６４は、メモリ３３４における特定のページへのＶＭのアクセスを可能にする又は拒否する。ＶＭがアクセスを拒否されたメモリのページは“ロックされた”ページと呼ばれる一方、ＶＭがアクセスを可能にされたページは“ロックされていない”ページと呼ばれる。ロックされたメモリページ３６０において、セキュアなＳＭＭ動作を支援するためにＳＶＭＭ３６４におけるモジュール及びＳＶＭＭ３６４を位置付けることが可能である。一実施形態において、そのようなモジュールは、ＳＶＭＭ  ＳＭＭハンドラ３６６と、仮想マシンエグジット（ＶＭｅｘｉｔ）／仮想マシンコール（ＶＭｃａｌｌ）ハンドラ３６８を含むことが可能である。他の実施形態においては、ＳＶＭＭ  ＳＭＭハンドラ３６６の機能及びＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ３６８の機能は結合される又は他のモジュールの間に分配されることが可能である。他のメモリのページは、ロックされないメモリページ３６２のように、ロックされないまま保たれることが可能である。標準的なオペレーティングシステム３７２はロックされないメモリページ３６２に位置付けられることが可能である。又、ＭＭＳ仮想マシン（ＳＭＭ  ＶＭ）３７０はロックされないメモリページ３６２にあることが可能である。ＳＭＭ  ＶＭ３７０は標準的なＳＭＭコードに類似しているが、仮想マシンコンテナにおいて動作するように修正されたソフトウェアコードを含むことが可能である。そのようなＳＭＭ  ＶＭ３７０における修正は、標準的なＳＭＭではなくページモードにおける実行のために調整されたコードを含むことが可能である。
【００２４】
単一の分離された集積回路において実行されるように、チップセット３３０のメモリ制御器及びＩ／Ｏ装置の制御機能を、図３の実施形態に示している。代替の実施形態においては、分離されたメモリ制御器が集積された回路は、一般に、チップセット３３０について上で説明したメモリ制御機能を実行することが可能である。同様に、分離されたＩ／Ｏ装置の制御器が集積された回路は、チップセット３３０について上で説明したＩ／Ｏ装置の制御機能を実行することが可能である。他の実施形態において、チップセット３３０のメモリ制御機能は、幾つかのＣＰＵが特定容量の物理メモリへの直接アクセスをそれぞれ有することを可能にする、ＣＰＵ集積回路における回路構成において実施されることが可能である。そのような実施形態において、チップセット３３０のメモリ制御機能は、幾つかのＣＰＵ集積回路の間で分割されることが可能であり、又は、複数のプロセッサに対して、単一のダイにおいて含まれることが可能である。
【００２５】
ここで、図４を参照するに、本発明の一実施形態に従って、仮想マシン（ＶＭ）コンテナにおいて動作するシステム管理コード（ＳＭＭ）を示している。図４の実施形態において、ＳＶＭＭ４５０は、セキュアな又は高信頼性のＳＭＭ動作を支援するために２つの付加モジュールを有している。ＳＶＭＭ  ＳＭＭハンドラ４５２は、ＳＥＮＴＥＲ命令の実行に応答してＳＭＭ  ＶＭ４９０におけるＳＭＭコードを確立する。ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４は、ＶＭコンテナにおけるＳＭＭ  ＶＭ４９０の意図的な低い特権レベルのために、ＳＭＭ  ＶＭ４９０へのエントリ及びそれからのエグジットを処理する。一部の実施形態においては、ＳＶＭＭ  ＳＭＭハンドラ４５２及びＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４は同じソフトウェアモジュールとすることが可能である。
【００２６】
ＳＶＭＭ  ＳＭＭハンドラ４５２は幾つかの機能を実行することが可能である。セキュアな又は高信頼性の動作への移行の間に、プロセッサによるＳＥＮＴＥＲコマンドの実行に従って、ＳＶＭＭ  ＳＭＭハンドラ４５２は、仮想マシンコンテナにおけるＳＭＭ  ＶＭ  ４９０コードをロードし且つ初期設定する。一部の実施形態においては、ＳＶＭＭ  ＳＭＭハンドラ４５２は、次いで、システムにおける各々のプロセッサの修正されたＳＭＢＡＳＥレジスタに対して、それ自体におけるエントリ位置を書き込む。このエントリ位置は、ＳＭＩがＳＶＭＭ  ＳＭＭハンドラ４５２に対して、先ず、命令されることを可能にする。これは、システム管理の割り込みに応答してＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４を直接呼び出す他の実施形態に対しては必要ない。これらの実施形態に対して、ＳＶＭＭ  ＳＭＭハンドラ４５２及びＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４は１つのソフトウェアモジュールに結合される。ＳＶＭＭ  ＳＭＭハンドラ４５２は又、ＳＭＭ動作へのエントリの際に保存される必要がある状態データを記憶するために、ロックされたメモリページにおいて空間を構築する。この状態データの例については、図１に関連して上で説明している。ロックされたメモリページにこの状態データを置くことにより、状態データの無許可の開示又は操作を回避する。
【００２７】
ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４は幾つかの機能を実行することが可能である。ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４は、最初のエントリに続いて、ＳＭＭ  ＶＭ４９０にエントリし、それからエグジットすることが可能である。ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４は又、ＳＭＭ  ＶＭ４９０がロックされたメモリページから読み出すように又はそれから書き込むように試みるときにもたらされる例外を処理することが可能である。ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４の一部は、特定のこれらのロックされたメモリページからの読み出し又はそれからの書き込みが状況に依存して進めるようにされる必要があるかどうかを決定することが可能である。一実施形態において、ロックされたメモリページにおいて対象とされた位置が高信頼性のデータを含んでいないことをＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４が決定した場合、ロックされたメモリページからの読み出し又はそれからの書き込みが許可されることが可能である。
【００２８】
ＳＭＭ  ＶＭ４９０は、ページメモリアクセスモードにおいて実行するためにＳＭＭモードフォーマットから修正された、所望のＳＭＭコードを含む。一般に、ＳＭＭ  ＶＭ４９０におけるＳＭＭコードは、ロックされたメモリページからのメモリ読み出し及びそれへのメモリ書き込みを生成するために、それらの命令の例外的場合と共に、上記のように実行する。それらの場合、ＳＭＭコードはＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４を読み出すことが可能である。ＳＭＭコードはＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４に明示コールを生成することが可能であり、又、ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４に例外が捕捉されるようにすることにより間接コールを生成することが可能である。どちらの場合においても、ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４はこれらの状況を処理する。
【００２９】
ここで、図５を参照するに、本発明の一実施形態に従った、システム管理割り込み再命令について示している。セキュアな又は高信頼性の動作の開始に続くハードウェア４８０におけるＳＭＩ生成イベントについて考慮することとする。プロセッサはそのＳＭＢＡＳＥレジスタを調べる。初期設定の際に、ＳＶＭＭ  ＳＭＭハンドラ４５２はプロセッサにおける修正されたＳＭＢＡＳＥレジスタに内部メモリ位置を書き込んだため、プロセッサはＳＶＭＭ  ＳＭＭハンドラ４５２の実行を開始する。ＳＶＭＭ  ＳＭＭハンドラ４５２はロックされたメモリページに状態データを記憶し、次いで、ＳＭＭ  ＶＭ４９０における実際のＳＭＭコードへの仮想モードエンター（ＶＭｅｎｔｅｒ）コールを発行する。他の実施形態においては、ＳＭＩは、ＳＶＭＭのＶＭｅｘｉｔハンドラの呼び出しをもたらすことが可能である。
【００３０】
ＳＭＭ  ＶＭ４９０におけるＳＭＭコードは、ロックされたメモリページにおけるメモリ位置からの読み出し又はそれへの書き込みを試みるまで実行される。次いで、明示コールか又は捕捉をもたらす例外により、ＶＭｅｘｉｔ／ＶＭｃａｌｌ５２４はＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４を呼び出すために生成されることが可能である。ＶＭｅｘｉｔ／ＶＭｃａｌｌ５２４は、許可可能であるとみなされるそれらのメモリアクセスを実行し、次いで、他のＶＭｅｎｔｅｒ５２２によりＳＭＭ  ＶＭ４９０に戻る。このプロセスは、ＳＭＭ  ＶＭ４９０における所望のＳＭＭコードが完了するまで、数回繰り返されることが可能である。このとき、ＳＭＭコードは、ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４にＶＭｅｘｉｔ／ＶＭｃａｌｌ５２４を経由してエグジットする。一部の実施形態に対して、ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４は、次いで、修正されたれジューム命令ＳＭＭ  ＶＭコードＲＳＭ５２６の実行によりＳＶＭＭ  ＳＭＭハンドラ４５２にエグジットする。これは、ＳＶＭＭ  ＳＭＭハンドラ４５２がロックされたメモリページに記憶された（ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４により修正される可能性がある）状態データを回復させるようにする。他の実施形態に対しては、ＳＶＭＭ  ＳＭＭハンドラ４５２及びＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４は結合されることが可能であり、これらの動作はソフトウェアにおいて実行されることが可能である。状態データの回復のとき、プロセッサはそのオリジナルの動作を再開する。
【００３１】
ここで、図６を参照するに、本発明の他の実施形態に従った、図２のソフトウェア環境を支援するように適合された例示としてのマイクロプロセッサシステムの模式図を示している。ＣＰＵ  Ａ６１０、ＣＰＵ  Ｂ６１４、ＣＰＵ  Ｃ６１８及びＣＰＵ  Ｄ６２２は、特別命令の実行を支援する論理回路構成又は付加マイクロコードから構成されることが可能である。一実施形態において、プロセッサに対する修正は、レジスタの挙動に対する変化及び新しい又は修正された命令を含むことが可能である。例えば、一実施形態において、ＣＰＵ  Ｃ６１８は、新しい命令“仮想マシンモニタ初期設定”（ＶＭＭＩＮＩＴ）６２４を含むことが可能である。ＶＭＭＩＮＩＴ６２４命令は、実行のとき、上で図２において示したように、セキュアな又は高信頼性の動作の開始を可能にする。一実施形態において、ＶＭＭＩＮＩＴ６２４は又、セキュアな又は高信頼性のＳＭＭ動作を支援するために特定の状況においてＣＰＵ  Ｃ６１８のＰＳＭＢＡＳＥレジスタ６１６の標準的な動作を無効にすることが可能である。そのような実施形態において、ＣＰＵ  Ｃ６１８は、次いで、セキュリティ環境ルールにより予め準備されたＶＭｅｘｉｔ／ＶＭｃａｌｌ６６８におけるコードエントリポイント及び状態保存領域にＳＭＩを再命令することが可能である。
【００３２】
一実施形態において、ＣＰＵ  Ｃ６１８は又、修正されたれジューム（ＲＳＭ）６２６命令を含むことが可能である。修正されたＲＳＭ６２６は、セキュアな又は高信頼性の動作を支援するＳＭＭからの戻りを可能にする。通常、ＲＳＭ命令はＳＭＭからのみ実行されることが可能である。修正されたＲＳＭ６２６は標準的なページモードから実行されることが可能である。有効にされたＶＭ拡張子が呼び出されたとき、修正されたＲＳＭ６２６命令は、ＶＭｅｘｉｔ／ＶＭｃａｌｌ６６８を呼び出すことに戻って、ＶＭｅｘｉｔと呼ばれる特別なシステムコールを実行することが可能である。
【００３３】
チップセット６３０は、システムバス６２０においてＣＰＵから伝えられた要求を読み込む及び書き出すために役立つ。メモリ６３４におけるＳＭＲＡＭの分配を、ＣＳＭＢＡＳＥの値を含むチップセットＳＭＢＡＳＥレジスタ６３１により容易にすることが可能である。
【００３４】
ＳＶＭＭ６６４は、メモリ６３４における特性のページへのＶＭのアクセスを可能にする又は拒否することを可能にする。ＶＭがアクセスを拒否されたメモリのページは“ロックされた”ページと呼ばれる一方、ＶＭがアクセスを可能にされたページは“ロックされていない”ページと呼ばれる。ロックされたメモリページ６６０において、セキュアなＳＭＭ動作を支援するためにＳＶＭＭ６６４におけるモジュール及びＳＶＭＭ６６４を位置付けることが可能である。一実施形態において、モジュールはＶＭｅｘｉｔ／ＶＭｃａｌｌ６６８とすることが可能である。他の実施形態においては、ＶＭｅｘｉｔ／ＶＭｃａｌｌ６６８の機能は結合されることが可能であり、他のモジュール間に分配されることが可能である。他のメモリのページは、ロックされていないメモリページ６６２のようなロックされない状態のまま保つことが可能である。標準的なオペレーティングシステム６７２はロックされていないメモリページに位置付けられることが可能である。又、ＳＭＭ  ＶＭ６７０はロックされていないメモリページ６６２にあることが可能である。ＳＭＭ  ＶＭ６７０は、標準的なＳＭＭコードに類似しているが、仮想マシンコンテナにおいて動作するように修正されたソフトウェアコードを含むことが可能である。ＳＭＭ  ＶＭ６７０におけるそのような修正は、標準的なＳＭＭではなくページモードにおける実行のために調整されたコードを含むことが可能である。
【００３５】
ここで、図７を参照するに、本発明の他の実施形態に従った、システム管理割り込み再命令についての図を示している。図７の実施形態においては、ＳＶＭＭ７５０は、セキュアな又は高信頼性のＳＭＭ動作を支援するために２つの付加モジュールを有する。一実施形態において、ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４は、ＶＭＭＩＮＩＴ命令の実行に応答してＳＭＭ  ＶＭ７９０においてＳＭＭコードを確立し、ＶＭコンテナにおけるＳＭＭＶＭ７９０の意図的な低い特権レベルのためにＳＭＭ  ＶＭ７９０へのエントリ及びそれからのエグジットを付加的に処理する。
【００３６】
ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４は幾つかの機能を実行することが可能である。セキュアな又は高信頼性の動作への移行の間に、プロセッサによるＶＭＭＩＮＩＴコマンドの実行に従って、ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４は、仮想マシンコンテナにおけるＳＭＭ  ＶＭ  ７９０コードをロードし且つ初期設定する。ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４は又、ＳＭＭ動作へのエントリの際に保存される必要がある状態データを記憶するためにロックされたメモリページにおける空間を確立する。
【００３７】
ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４は幾つかの付加機能を実行することが可能である。ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４は、ＳＭＭ  ＶＭ７９０へのエントリ及びそれからのエグジットを処理することが可能である。ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４は又、ＳＭＭ  ＶＭ７９０がロックされたメモリページから読み出すまたはそれから書き込むことを試みるときにもたらされる例外を処理することが可能である。
ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４の一部は、特定のこれらのロックされたメモリページからの読み出し又はそれからの書き込みが状況に依存して進めるようにされる必要があるかどうかを決定することが可能である。一実施形態において、ロックされたメモリページにおいて対象とされた位置が高信頼性のデータを含んでいないことをＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４が決定した場合、ロックされたメモリページからの読み出し又はそれからの書き込みが許可されることが可能である。
【００３８】
ＳＭＭ  ＶＭ７９０は、ページメモリアクセスモードにおいて実行するために、一実施形態においてＳＭＭモードフォーマットから修正された、所望のＳＭＭコードを含む。一般に、ＳＭＭ  ＶＭ７９０におけるＳＭＭコードは、ロックされたメモリページからのメモリ読み出し及びそれへのメモリ書き込みを生成するために、それらの命令の例外的場合と共に、上記のように実行する。それらの場合、ＳＭＭコードはＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４を読み出すことが可能である。ＳＭＭコードはＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４に明示コールを生成することが可能であり、又、ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４に例外が捕捉されるようにすることにより間接コールを生成することが可能である。どちらの場合においても、ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４はこれらの状況を処理する。
【００３９】
セキュアな又は高信頼性の動作の開始に続くハードウェア４８０におけるＳＭＩ生成イベントについて考慮することとする。プロセッサはそのＳＭＢＡＳＥレジスタを調べる。ＶＭＭＩＮＩＴの実行はプロセッサにおける修正されたＳＭＢＡＳＥレジスタの標準的な動作を無効にしたため、プロセッサは、セキュリティ環境ルールにより予め準備されたコードエントリポイントからＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４の実行を開始する。ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４はロックされたメモリページにおいて状態データを記憶し、次いで、ＳＭＭ  ＶＭ７９０において実際のＳＭＭコードにＶＭｅｎｔｅｒコールを発行する。
【００４０】
ＳＭＭ  ＶＭ７９０におけるＳＭＭコードは、ロックされたメモリページにおけるメモリ位置からの読み出し又はそれへの書き込みを試みるまで実行される。次いで、明示コールか又は捕捉をもたらす例外により、ＶＭｅｘｉｔ／ＶＭｃａｌｌ７２４はＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４を呼び出すために生成されることが可能である。ＶＭｅｘｉｔ／ＶＭｃａｌｌ７２４は、許可可能であるとみなされるそれらのメモリアクセスを実行し、次いで、他のＶＭｅｎｔｅｒ５２２によりＳＭＭ  ＶＭ７９０に戻る。このプロセスは、ＳＭＭ  ＶＭ７９０における所望のＳＭＭコードが完了するまで、数回繰り返されることが可能である。このとき、ＳＭＭコードは、ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４にＶＭｅｘｉｔ／ＶＭｃａｌｌ７２４を経由してエグジットする。一部の実施形態に対して、ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ７５４は、次いで、修正されたレジューム命令を先ず実行することにより、標準的なＳＶＭＭ７５０動作にエグジットする。これは、ＳＶＭＭ  ＳＭＭハンドラ４５２がロックされたメモリページに記憶された（ＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４により修正される可能性がある）状態データを回復させるようにする。他の実施形態に対しては、ＳＶＭＭ  ＳＭＭハンドラ４５２及びＶＭｅｘｉｔ／ＶＭｃａｌｌハンドラ４５４は結合されることが可能であり、これらの動作はソフトウェアにおいて実行されることが可能である。状態データの回復のとき、プロセッサはそのオリジナルの動作を再開する。
【００４１】
開示した種々の実施形態は２つ又はそれ以上のプロセッサ（論理プロセッサ又は物理プロセッサ）を含む一方、そのような複数のプロセッサ及び／又は複数のスレッドシステムは、複数の論理プロセッサ又は物理プロセッサを有するシステムをセキュアにすることに関連する付加的複雑性を述べるためにより詳細に説明されることを理解する必要がある。より複雑でないシステムにおいて有利である可能性がある実施形態は又、１つのプロセッサのみを用いることが可能である。一部の例においては、１つの物理プロセッサは、複数のスレッドとすることが可能であり、それ故、複数の論理プロセッサを含むことが可能である。他の例においては、しかしながら、単一のプロセッサ、単一のスレッドシステムが用いられることが可能であり、更に、開示したセキュアな処理技術を利用することが可能である。そのような場合、セキュアな処理技術は、更に、データが認証されない方式で操作される又は盗難される可能性を低減するために機能する。
【００４２】
上記の詳細説明において、本発明は、例示としての特定の実施形態に関して説明した。しかしながら、同時提出の特許請求の範囲から逸脱することなく、種々の修正及び変更を行うことが可能であることは明らかであろう。従って、上記の詳細説明及び図面は、制限的意味ではなく、例示であるとみなされる必要がある。
【図面の簡単な説明】
【００４３】
【図１】既存の実施におけるシステム管理ＲＡＭのシステム管理モードコードの守りマッピングを示す図である。
【図２】一実施形態に従った、高信頼性の領域及び信頼性のない領域を有する例示としてのソフトウェア環境を示す図である。
【図３】本発明の一実施形態に従った、図２のソフトウェア環境を支援するように適合された例示としてのマイクロプロセッサシステムの模式図である。
【図４】本発明の一実施形態に従った、仮想マシンコンテナにおいて動作するシステム管理コードを示す図である。
【図５】本発明の一実施形態に従った、システム管理割り込み再命令を示す図である。
【図６】本発明の他の実施形態に従った、図２のソフトウェア環境を支援するように適合された例示としてのマイクロプロセッサシステムの模式図である。
【図７】本発明の他の実施形態に従った、システム管理割り込み再命令を示す図である。
【図１】
2005529401.tif 000003
【図２】
2005529401.tif 000004
【図３】
2005529401.tif 000005
【図４】
2005529401.tif 000006
【図５】
2005529401.tif 000007
【図６】
2005529401.tif 000008
【図７】
2005529401.tif 000009
【国際調査報告】
2005529401.tif 000010
2005529401.tif 000011
2005529401.tif 000012