"プロセッサによりサブオペレーティングシステムモード割り込みを受け入れる段階であって、高信頼性コードにおいて第1ハンドラに前記サブオペレーティングシステムモード割り込みを命令する、段階;第1仮想マシンにおける高信頼性コードを有する第1ハンドラにより、前記高信頼性コードのセキュリティ制御下で仮想マシンに含まれるサブオペレーティングシステムモードのコードに前記サブオペレーティングシステムモード割り込みを再命令する段階;及び前記サブオペレーティングシステムモードのコードにより、前記サブオペレーティングシステムモード割り込みを処理する段階;を有する方法。前記高信頼性コードにより、前記プロセッサにおける割り込みサービスレジスタを書き込む段階;を更に有する請求項1に記載の方法。前記割り込みサービスレジスタはシステム管理ベースのレジスタであり、前記サブオペレーティングシステムモード割り込みはシステム管理割り込みである、請求項2に記載の方法。前記サブオペレーティングシステムモード割り込みを処理する段階は、ページモードで実行する前記サブオペレーティングシステムモードのコードを有する、請求項1に記載の方法。前記第1コードはシステム管理モードコードである、請求項4に記載の方法。メモリのロックされたページにアクセスする試みに応答して、前記高信頼性コードにおける第2ハンドラを呼び出す段階;を更に有する請求項1に記載の方法。前記第2ハンドラにより、前記メモリの前記ロックされたページにアクセスする前記試みが許可可能であるかどうかを決定する段階;を更に有する請求項6に記載の方法。前記第2ハンドラにより、修正されたレジューム命令を発行することにより前記サブオペレーティングシステムモードのコードからのエグジットを開始する段階;を更に有する請求項6に記載の方法。前記第1ハンドラにより、状態データを記憶するメモリのロックされたページにおける空間を確立する段階;を更に有する請求項1に記載の方法。前記サブオペレーティングシステムモードのコードはメモリのロックされていないページに位置している、請求項1に記載の方法。前記高信頼性コードにより、前記プロセッサにおける割り込みサービスレジスタを無効にする段階;を更に有する請求項1に記載の方法。前記割り込みサービスレジスタはシステム管理ベースのレジスタであり、前記サブオペレーティングシステムモード割り込みはシステム管理割り込みである、請求項11に記載の方法。メモリのロックされたページにアクセスする試みに応答して、前記高信頼性コードにおける前記第1ハンドラを呼び出す段階;を更に有する請求項1に記載の方法。前記第1ハンドラにより、前記メモリのロックされたページにアクセスする前記試みが許可可能かどうかを決定する段階;を更に有する請求項13に記載の方法。前記第1ハンドラにより、修正されたレジューム命令を発行することにより前記システム管理コードからのエグジットを開始する段階;を更に有する請求項13に記載の方法。以下の説明は、マイクロプロセッサシステムにおける高信頼性又はセキュアな環境における特定のシステム管理モードのコードの実行を可能にするための技術に関するものである。以下の説明においては、例えば、論理の実施、ソフトウェアモジュール割り当て、暗号化技術、バスシグナリング技術及びオペレーションの詳細等の多くの仕様の詳細について、本発明の全体を通してのよりよい理解を提供するように説明している。しかしながら、本発明はそのような特定の詳細を用いないで実行されることが可能であることが、当業者には理解されるであろう。他の例においては、制御構成、ゲートレベルの回路及び全部のソフトウェア命令シーケンスについては、本発明を理解し難くしないように、詳細を示すことはしない。盛り込んでいる説明を用いて、当業者は、過度の実験をすることなく、適切な機能性を実施することが可能となるであろう。本発明は、マイクロプロセッサシステムの形式で開示している。しかしながら、本発明は、例えば、デジタル信号プロセッサ、マイクロコンピュータ又はメインフレームコンピュータのような他の方式のプロセッサにおいて実行されることが可能である。セキュアな及び高信頼性の環境において制限されたサブオペレーティングシステムモードコードを可能にするために、そのサブオペレーティングシステムモードの割り込みは、システムリソースへの仮想マシンアクセスを制御する高信頼性コードにおいてハンドラに先ず命令されることが可能である。そのハンドラへの命令は、そのようなサブオペレーティングシステムモードの割り込みを行うために必要なコードの位置を含むプロセッサにおいて割り込みサービスレジスタに高信頼性コードが書き込む及びそれから読み出すことを可能にすることにより、達成されることが可能である割り込みサービスレジスタは、一般に、割り込みの受信において実行される必要があるそのコードを決定するために用いられるレジスタとして定義される。サブオペレーティングシステムモードの割り込みは、次いで、割り込みサービスに対して、上記の高信頼性モードのセキュリティ制御の下にある他の仮想マシンに位置付けられたサブオペレーティングシステムモードのコードに対して再命令される。代替として、マイクロプロセッサの仮想化アーキテクチャは、高信頼性コードが確立されたとき、サブオペレーティングシステムモードの割り込みは、もはや、標準的な割り込みサービスレジスタを用いることはないが、それに代えて、仮想化アーキテクチャと整合性がとれた高信頼性コードへの移行をもたらす。サブオペレーティングシステムモードがシステム管理モードSMMである例示としての場合、セキュアな又は高信頼性の環境におけるSMMコードの実行は、システム管理の割り込みSMIがセキュアな仮想マシンモニタSVMM:SecuredVirtualMachineMonitorにおけるハンドラに命令されるようにすることにより開始されることが可能である。このハンドラへの命令は、SVMMがプロセッサPSMBASEにおけるシステム管理ベースSMBASEのレジスタに書き込まれる及びそれから読み出されることを可能にすることにより、達成されることが可能である。SMIは、次いで、SVMMのセキュリティ制御の下にある仮想マシンVMに位置付けられたSMMコードに再命令される。代替として、プロセッサの仮想化アーキテクチャは、PSMBASEレジスタの使用を無効にし、直接、SVMMへのSMI全ての再命令をもたらすことが可能である。一実施形態において、SMMコードは、メモリにおける保護されたページを除いて、システムリソース全てへのアクセス、及びこの保護を維持する関連システム制御を許可されることが可能である。これを達成するために、セキュアにされた動作の初期設定の後、SMIは、先ず、SVMMにおいてハンドラに対して命令されることが可能である。このハンドラは、SMMモードに対して適切な仮想マシンVMコンテナを確立し、そのコードにSMIを再命令することが可能である。VMコンテナにおいてSMMコードを実行することにより、SMMコードは、SVMMが保護されたとみなされた、メモリのような種々のシステムリソースにアクセスしないようにされることが可能である。一実施形態においては、ここで、VMの要求を確認するために、SMMコードが書き込まれることが可能である。1つのそのような変化の確認は、SMMコードがフラット保護モードか又は一部の他のページメモリアクセスモードのどちらかにおいて書き込まれることである。ここで、図1を参照するに、システム管理ランダムアクセスメモリSMRAM:SystemManagementRandom-AccessMemoryにおけるシステム管理モードSMMコードのメモリマッピングが一実施形態において示されている。標準的システムの初期設定の間、システムランダムアクセスメモリRAM110のセクションは、SMMコードによる独占使用のために除外される。この除外されたセクションは、システム管理RAMSMRAMと呼ばれる。SMRAMにおける特定のメモリ位置は、チップセット又はプロセッサにおける割り込みサービスレジスタにより指し示されることが可能であり、そのチップセット又はプロセッサは、一実施形態において、システム管理ベースのSMBASEレジスタと呼ばれる。チップセットSMBASEレジスタのコンテンツCSMBASEは、SMRAMの境界を規定することが可能である。例えば、SMRAMは、CSMBASE120とCSMBASEFFFFhex132との間の空間を占めることが可能である。他の実施形態においては、同時にSMMコードを実行する2つ又はそれ以上のプロセッサを支援するために、各々のプロセッサはそれ自体の専用SMRAM空間を有することが可能である。プロセッサのSMBASEレジスタコンテンツPSMBASEは、SMRAMにおける状態保存位置及びコードエントリポイントを規定することが可能である。例えば、SMRAMにおいて、標準的コードエントリポイントは、CSMBASE8000hex124に位置付けられることが可能である。CSMBASEの値は、各々のプロセッサのSMBASEレジスタに対するシステム初期設定において書き込まれることが可能であり、これにより、各々のプロセッサはSMIの受信においてSMMコードエントリポイントに進むことが可能である。SMMコードへのエントリに先立ち、プロセッサは、一実施形態において、アドレスPSMBASEFE00hex128とSMBASEFFFFhex132の位置におけるSMRAMの端部との間の状態保存領域に状態データを記憶することが可能である。他の実施形態においては、同時にSMMコードを実行する2つ又はそれ以上のプロセッサを支援するために、各々のプロセッサのSMBASEレジスタは、異なるコードエントリポイント及び状態データを記憶するための位置を可能にする、PSMBASEの異なる値を含むことが可能である。状態データは、制御レジスタの値、フラッグ、自動中断再起動フィールド、入力/出力I/O命令再起動フィールド及びSMMリビジョン識別子を含むことが可能である。SMRAMにおける位置の一部は、SMIハンドラにより修正されることが可能である。SMMコードの実行の完了に際して、オリジナルプログラムは、プロセッサがレジュームRSM命令を実行するとき、再エントリされることが可能である。この既存のRSM命令はSMM命令においてのみを発行されることが可能であり、SMRAMにおいて予め記憶された状態値をもとに戻す。この既存のSMMデザインは当該技術分野において周知である。ここで、図2を参照するに、本発明の一実施形態に従って、例示としての高信頼性又はセキュアなソフトウェア環境を示している。図2の実施形態においては、高信頼性の及び信頼性のないソフトウェアが同時に位置付けられており、それらを単一のコンピュータシステムにおいて同時に実行することが可能である。SVMM250は、信頼性のないオペレーティングシステム240又は、複数の信頼性のない仮想マシンが実行される場合の複数のオペレーティングシステム及び信頼性のない装置210乃至230からハードウェアリソース280への直接アクセスを選択的に可能にする又は回避する。これに関連して、信頼性のないは、オペレーティングシステム又はアプリケーションが故意に不正な挙動を示すが、相互作用するコードの種類及びサイズは、ソフトウェアが所望のように挙動し、その実行に干渉する他の外部からのコード又はウィルスが存在しないことを確実に実証することを非現実的にする。代表的な実施形態においては、信頼性のないコードは、標準的なオペレーティングシステム及び今日のパーソナルコンピュータにおいてみられるアプリケーションから構成されることが可能である。SVMM250は又、1つ又はそれ以上の高信頼性又はセキュアなカーネル260及び1つ又はそれ以上の高信頼性アプリケーション270からハードウェアリソース280への直接アクセスを選択的に可能にする又は回避する。そのような高信頼性の又はセキュアなカーネル260及び高信頼性のアプリケーション270は、それにおいて高信頼性分析を実行する能力において支援するようにサイズ及び機能性を制限されることが可能である。高信頼性のアプリケーション270を、セキュアな環境において実行可能である、いずれかのソフトウェアコード、プログラム、ルーチン又はルーチンの集合とすることが可能である。このように、高信頼性のアプリケーション270は、種々のアプリケーション又はコードシーケンスであることが可能であり、又、Java登録商標アプレットのような比較的小さいアプリケーションであることが可能である。システムリソース保護又は特権を変えることが可能であるオペレーティングシステム240又はカーネル260により標準的に実行される命令又は動作は、SVMM250により捕捉され、選択的に可能にされ、部分的に可能にされ、又は拒否される。例として、代表的な実施形態において、オペレーティングシステム240又はカーネル260を動作させることにより標準的に実行されるプロセッサのページテーブルを変化させる命令は、それに代えて、SVMM250により捕捉される。そのSVMM250は、要求が仮想マシンの領域の外側のページ特権を変化させないように試みることを確実にする。このシステムを視認化する1つの方法は、オペレーティングシステム240、カーネル260及びSVMM250が、SVMM250仮想マシンにおいて実行するカーネル260仮想マシン及びオペレーティングシステム240仮想マシンを有する、全てが仮想マシンであることである。このようにして、仮想マシンの階層が構成される。ここでは、一実施形態において、仮想マシンは、システムのリソース全ての独占的な制御を有する特徴を各々のユーザに与えるいずれかの複数のユーザの共有リソースのオペレーティングシステムとして定義されることが可能であり、又、仮想マシンは又、基本となる制御プログラムにより次に管理されるオペレーティングシステムと定義されることが可能である。図3を参照するに、図2のセキュアなソフトウェア環境を支援するために適応されたマイクロプロセッサ300の一実施形態を示している。CPUA310、CPUB314、CPUC318及びCPUD322は、特定命令の実行を支援するために論理回路又は付加マイクロコードから構成されることが可能である。一実施形態において、プロセッサは、本発明の実施形態に従って特定の特別な修正を有するIntel登録商標のPentium登録商標クラスのマイクロプロセッサとすることが可能である。これらの特別な命令は、プロセッサにおけるSVMM250動作の正確な同期を可能にするシステムバス320における特別なバスメッセージの発行を支援することが可能である。同様に、チップセット330は、システムバス320において、上記の特別なサイクルを支援することが可能である。物理プロセッサの数は、特定の実施形態の実行の再に変化することが可能である。図3の実施形態においては、4つのプロセッサ、CPUA310、CPUB314、CPUC318及びCPUD322が、4つの別個のハードウェアエンティティとして示されている。他の実施形態においては、プロセッサの数は異なることが可能である。実際には、プロセッサは、別個のスレッドであって、各々が物理プロセッサの一において実行する、スレッドにより置き換えられる。後者の場合、これらのスレッドは、付加物理プロセッサの多くの属性を処理する。複数の物理プロセッサ及びプロセッサに関する複数のスレッドのいずれかの混合を用いて検討するように総称表現を有するために、表現論理プロセッサを、物理プロセッサか又は物理プロセッサの1つにおいて動作するスレッドを表すために用いることが可能である。このようにして、1つの単一のスレッドプロセッサは論理プロセッサであるとみなすことが可能であり、複数のスレッド又は複数のコアプロセッサは複数の論理プロセッサとみなされることが可能である。一実施形態において、プロセッサへの修正は、レジスタの挙動への変化及び新しい又は修正された命令を含むことが可能である。例えば、一実施形態において、CPUC318は、新しい命令のセキュアなエンターSENTERを含むことが可能である。SENTER324命令は、実行に際して、上記の図2において示したように、セキュアな又は高信頼性の動作の初期設定を可能にする。SENTER324は、複数の論理プロセッサがセキュアな又は高信頼性の動作へのそれらのエントリを同期することを可能にする。一実施形態において、SENTER324は又、セキュアな又は高信頼性のSMM動作を支援するために特定の状況においてCPUC318のPSMBASEレジスタ316への書き込みを可能にする。一実施形態において、CPUC318は又、修正されたレジュームRSM326命令を含むことが可能である。修正されたRSM326は、セキュアな又は高信頼性の動作を支援するSMMからのリターンを可能にする。従来のRSM命令はSMMからのみ実行されることが可能である。修正されたRSM326は、標準的なページモードから実行されることが可能である。有効にされたVM拡張子と共に呼び出されるとき、修正されたRSM326命令は、SMIに対するSVMMに戻る、VMexitと呼ばれる、特別なシステムコールを実行することが可能である。チップセット330は、システムバス320においてCPUからもたらされた要求を書き込む又はそれを読み出すために役立つ。メモリ334におけるSMRAMの配分を、CSMBASEの値を含むチップセットSMBASEレジスタ331により容易にすることが可能である。チップセット330は、高性能グラフィクポートAGP336のような専用の入力/出力I/Oチャネルに接続されることが可能である。チップセット330は、CPUA310、CPUB314、CPUC318及びCPUD322から、及び付加的にはI/O装置から、物理メモリ334におけるメモリのページへのアクセスを制御することが可能である。そのような装置は、固定媒体344又はリムーバブル媒体348のような大容量記憶装置を含むことが可能である。固定媒体344又はリムーバブル媒体348は、磁気ディスク、磁気テープ、磁気ディスケット、光磁気ドライブ、CD-ROM、DVD-ROM、フラッシュメモリカード、又は他の方式の大容量記憶装置とすることが可能である。固定媒体344又はリムーバブル媒体348は、周辺装置の構成要素の相互接続PCIバス346により、若しくは、代替として、ユニバーサルシリアルバスUSB342,統合制御器エレクトロニクスIDEバス図示せず又は小型コンピュータシステムの相互接続SCSIバス図示せずにより、チップセット330に接続されることが可能である。SVMM364は、メモリ334における特定のページへのVMのアクセスを可能にする又は拒否する。VMがアクセスを拒否されたメモリのページはロックされたページと呼ばれる一方、VMがアクセスを可能にされたページはロックされていないページと呼ばれる。ロックされたメモリページ360において、セキュアなSMM動作を支援するためにSVMM364におけるモジュール及びSVMM364を位置付けることが可能である。一実施形態において、そのようなモジュールは、SVMMSMMハンドラ366と、仮想マシンエグジットVMexit/仮想マシンコールVMcallハンドラ368を含むことが可能である。他の実施形態においては、SVMMSMMハンドラ366の機能及びVMexit/VMcallハンドラ368の機能は結合される又は他のモジュールの間に分配されることが可能である。他のメモリのページは、ロックされないメモリページ362のように、ロックされないまま保たれることが可能である。標準的なオペレーティングシステム372はロックされないメモリページ362に位置付けられることが可能である。又、MMS仮想マシンSMMVM370はロックされないメモリページ362にあることが可能である。SMMVM370は標準的なSMMコードに類似しているが、仮想マシンコンテナにおいて動作するように修正されたソフトウェアコードを含むことが可能である。そのようなSMMVM370における修正は、標準的なSMMではなくページモードにおける実行のために調整されたコードを含むことが可能である。単一の分離された集積回路において実行されるように、チップセット330のメモリ制御器及びI/O装置の制御機能を、図3の実施形態に示している。代替の実施形態においては、分離されたメモリ制御器が集積された回路は、一般に、チップセット330について上で説明したメモリ制御機能を実行することが可能である。同様に、分離されたI/O装置の制御器が集積された回路は、チップセット330について上で説明したI/O装置の制御機能を実行することが可能である。他の実施形態において、チップセット330のメモリ制御機能は、幾つかのCPUが特定容量の物理メモリへの直接アクセスをそれぞれ有することを可能にする、CPU集積回路における回路構成において実施されることが可能である。そのような実施形態において、チップセット330のメモリ制御機能は、幾つかのCPU集積回路の間で分割されることが可能であり、又は、複数のプロセッサに対して、単一のダイにおいて含まれることが可能である。ここで、図4を参照するに、本発明の一実施形態に従って、仮想マシンVMコンテナにおいて動作するシステム管理コードSMMを示している。図4の実施形態において、SVMM450は、セキュアな又は高信頼性のSMM動作を支援するために2つの付加モジュールを有している。SVMMSMMハンドラ452は、SENTER命令の実行に応答してSMMVM490におけるSMMコードを確立する。VMexit/VMcallハンドラ454は、VMコンテナにおけるSMMVM490の意図的な低い特権レベルのために、SMMVM490へのエントリ及びそれからのエグジットを処理する。一部の実施形態においては、SVMMSMMハンドラ452及びVMexit/VMcallハンドラ454は同じソフトウェアモジュールとすることが可能である。SVMMSMMハンドラ452は幾つかの機能を実行することが可能である。セキュアな又は高信頼性の動作への移行の間に、プロセッサによるSENTERコマンドの実行に従って、SVMMSMMハンドラ452は、仮想マシンコンテナにおけるSMMVM490コードをロードし且つ初期設定する。一部の実施形態においては、SVMMSMMハンドラ452は、次いで、システムにおける各々のプロセッサの修正されたSMBASEレジスタに対して、それ自体におけるエントリ位置を書き込む。このエントリ位置は、SMIがSVMMSMMハンドラ452に対して、先ず、命令されることを可能にする。これは、システム管理の割り込みに応答してVMexit/VMcallハンドラ454を直接呼び出す他の実施形態に対しては必要ない。これらの実施形態に対して、SVMMSMMハンドラ452及びVMexit/VMcallハンドラ454は1つのソフトウェアモジュールに結合される。SVMMSMMハンドラ452は又、SMM動作へのエントリの際に保存される必要がある状態データを記憶するために、ロックされたメモリページにおいて空間を構築する。この状態データの例については、図1に関連して上で説明している。ロックされたメモリページにこの状態データを置くことにより、状態データの無許可の開示又は操作を回避する。VMexit/VMcallハンドラ454は幾つかの機能を実行することが可能である。VMexit/VMcallハンドラ454は、最初のエントリに続いて、SMMVM490にエントリし、それからエグジットすることが可能である。VMexit/VMcallハンドラ454は又、SMMVM490がロックされたメモリページから読み出すように又はそれから書き込むように試みるときにもたらされる例外を処理することが可能である。VMexit/VMcallハンドラ454の一部は、特定のこれらのロックされたメモリページからの読み出し又はそれからの書き込みが状況に依存して進めるようにされる必要があるかどうかを決定することが可能である。一実施形態において、ロックされたメモリページにおいて対象とされた位置が高信頼性のデータを含んでいないことをVMexit/VMcallハンドラ454が決定した場合、ロックされたメモリページからの読み出し又はそれからの書き込みが許可されることが可能である。SMMVM490は、ページメモリアクセスモードにおいて実行するためにSMMモードフォーマットから修正された、所望のSMMコードを含む。一般に、SMMVM490におけるSMMコードは、ロックされたメモリページからのメモリ読み出し及びそれへのメモリ書き込みを生成するために、それらの命令の例外的場合と共に、上記のように実行する。それらの場合、SMMコードはVMexit/VMcallハンドラ454を読み出すことが可能である。SMMコードはVMexit/VMcallハンドラ454に明示コールを生成することが可能であり、又、VMexit/VMcallハンドラ454に例外が捕捉されるようにすることにより間接コールを生成することが可能である。どちらの場合においても、VMexit/VMcallハンドラ454はこれらの状況を処理する。ここで、図5を参照するに、本発明の一実施形態に従った、システム管理割り込み再命令について示している。セキュアな又は高信頼性の動作の開始に続くハードウェア480におけるSMI生成イベントについて考慮することとする。プロセッサはそのSMBASEレジスタを調べる。初期設定の際に、SVMMSMMハンドラ452はプロセッサにおける修正されたSMBASEレジスタに内部メモリ位置を書き込んだため、プロセッサはSVMMSMMハンドラ452の実行を開始する。SVMMSMMハンドラ452はロックされたメモリページに状態データを記憶し、次いで、SMMVM490における実際のSMMコードへの仮想モードエンターVMenterコールを発行する。他の実施形態においては、SMIは、SVMMのVMexitハンドラの呼び出しをもたらすことが可能である。SMMVM490におけるSMMコードは、ロックされたメモリページにおけるメモリ位置からの読み出し又はそれへの書き込みを試みるまで実行される。次いで、明示コールか又は捕捉をもたらす例外により、VMexit/VMcall524はVMexit/VMcallハンドラ454を呼び出すために生成されることが可能である。VMexit/VMcall524は、許可可能であるとみなされるそれらのメモリアクセスを実行し、次いで、他のVMenter522によりSMMVM490に戻る。このプロセスは、SMMVM490における所望のSMMコードが完了するまで、数回繰り返されることが可能である。このとき、SMMコードは、VMexit/VMcallハンドラ454にVMexit/VMcall524を経由してエグジットする。一部の実施形態に対して、VMexit/VMcallハンドラ454は、次いで、修正されたれジューム命令SMMVMコードRSM526の実行によりSVMMSMMハンドラ452にエグジットする。これは、SVMMSMMハンドラ452がロックされたメモリページに記憶されたVMexit/VMcallハンドラ454により修正される可能性がある状態データを回復させるようにする。他の実施形態に対しては、SVMMSMMハンドラ452及びVMexit/VMcallハンドラ454は結合されることが可能であり、これらの動作はソフトウェアにおいて実行されることが可能である。状態データの回復のとき、プロセッサはそのオリジナルの動作を再開する。ここで、図6を参照するに、本発明の他の実施形態に従った、図2のソフトウェア環境を支援するように適合された例示としてのマイクロプロセッサシステムの模式図を示している。CPUA610、CPUB614、CPUC618及びCPUD622は、特別命令の実行を支援する論理回路構成又は付加マイクロコードから構成されることが可能である。一実施形態において、プロセッサに対する修正は、レジスタの挙動に対する変化及び新しい又は修正された命令を含むことが可能である。例えば、一実施形態において、CPUC618は、新しい命令仮想マシンモニタ初期設定VMMINIT624を含むことが可能である。VMMINIT624命令は、実行のとき、上で図2において示したように、セキュアな又は高信頼性の動作の開始を可能にする。一実施形態において、VMMINIT624は又、セキュアな又は高信頼性のSMM動作を支援するために特定の状況においてCPUC618のPSMBASEレジスタ616の標準的な動作を無効にすることが可能である。そのような実施形態において、CPUC618は、次いで、セキュリティ環境ルールにより予め準備されたVMexit/VMcall668におけるコードエントリポイント及び状態保存領域にSMIを再命令することが可能である。一実施形態において、CPUC618は又、修正されたレジュームRSM626命令を含むことが可能である。修正されたRSM626は、セキュアな又は高信頼性の動作を支援するSMMからの戻りを可能にする。通常、RSM命令はSMMからのみ実行されることが可能である。修正されたRSM626は標準的なページモードから実行されることが可能である。有効にされたVM拡張子が呼び出されたとき、修正されたRSM626命令は、VMexit/VMcall668を呼び出すことに戻って、VMexitと呼ばれる特別なシステムコールを実行することが可能である。チップセット630は、システムバス620においてCPUから伝えられた要求を読み込む及び書き出すために役立つ。メモリ634におけるSMRAMの分配を、CSMBASEの値を含むチップセットSMBASEレジスタ631により容易にすることが可能である。SVMM664は、メモリ634における特性のページへのVMのアクセスを可能にする又は拒否することを可能にする。VMがアクセスを拒否されたメモリのページはロックされたページと呼ばれる一方、VMがアクセスを可能にされたページはロックされていないページと呼ばれる。ロックされたメモリページ660において、セキュアなSMM動作を支援するためにSVMM664におけるモジュール及びSVMM664を位置付けることが可能である。一実施形態において、モジュールはVMexit/VMcall668とすることが可能である。他の実施形態においては、VMexit/VMcall668の機能は結合されることが可能であり、他のモジュール間に分配されることが可能である。他のメモリのページは、ロックされていないメモリページ662のようなロックされない状態のまま保つことが可能である。標準的なオペレーティングシステム672はロックされていないメモリページに位置付けられることが可能である。又、SMMVM670はロックされていないメモリページ662にあることが可能である。SMMVM670は、標準的なSMMコードに類似しているが、仮想マシンコンテナにおいて動作するように修正されたソフトウェアコードを含むことが可能である。SMMVM670におけるそのような修正は、標準的なSMMではなくページモードにおける実行のために調整されたコードを含むことが可能である。ここで、図7を参照するに、本発明の他の実施形態に従った、システム管理割り込み再命令についての図を示している。図7の実施形態においては、SVMM750は、セキュアな又は高信頼性のSMM動作を支援するために2つの付加モジュールを有する。一実施形態において、VMexit/VMcallハンドラ754は、VMMINIT命令の実行に応答してSMMVM790においてSMMコードを確立し、VMコンテナにおけるSMMVM790の意図的な低い特権レベルのためにSMMVM790へのエントリ及びそれからのエグジットを付加的に処理する。VMexit/VMcallハンドラ754は幾つかの機能を実行することが可能である。セキュアな又は高信頼性の動作への移行の間に、プロセッサによるVMMINITコマンドの実行に従って、VMexit/VMcallハンドラ754は、仮想マシンコンテナにおけるSMMVM790コードをロードし且つ初期設定する。VMexit/VMcallハンドラ754は又、SMM動作へのエントリの際に保存される必要がある状態データを記憶するためにロックされたメモリページにおける空間を確立する。VMexit/VMcallハンドラ754は幾つかの付加機能を実行することが可能である。VMexit/VMcallハンドラ754は、SMMVM790へのエントリ及びそれからのエグジットを処理することが可能である。VMexit/VMcallハンドラ754は又、SMMVM790がロックされたメモリページから読み出すまたはそれから書き込むことを試みるときにもたらされる例外を処理することが可能である。VMexit/VMcallハンドラ754の一部は、特定のこれらのロックされたメモリページからの読み出し又はそれからの書き込みが状況に依存して進めるようにされる必要があるかどうかを決定することが可能である。一実施形態において、ロックされたメモリページにおいて対象とされた位置が高信頼性のデータを含んでいないことをVMexit/VMcallハンドラ754が決定した場合、ロックされたメモリページからの読み出し又はそれからの書き込みが許可されることが可能である。SMMVM790は、ページメモリアクセスモードにおいて実行するために、一実施形態においてSMMモードフォーマットから修正された、所望のSMMコードを含む。一般に、SMMVM790におけるSMMコードは、ロックされたメモリページからのメモリ読み出し及びそれへのメモリ書き込みを生成するために、それらの命令の例外的場合と共に、上記のように実行する。それらの場合、SMMコードはVMexit/VMcallハンドラ754を読み出すことが可能である。SMMコードはVMexit/VMcallハンドラ754に明示コールを生成することが可能であり、又、VMexit/VMcallハンドラ754に例外が捕捉されるようにすることにより間接コールを生成することが可能である。どちらの場合においても、VMexit/VMcallハンドラ754はこれらの状況を処理する。セキュアな又は高信頼性の動作の開始に続くハードウェア480におけるSMI生成イベントについて考慮することとする。プロセッサはそのSMBASEレジスタを調べる。VMMINITの実行はプロセッサにおける修正されたSMBASEレジスタの標準的な動作を無効にしたため、プロセッサは、セキュリティ環境ルールにより予め準備されたコードエントリポイントからVMexit/VMcallハンドラ754の実行を開始する。VMexit/VMcallハンドラ754はロックされたメモリページにおいて状態データを記憶し、次いで、SMMVM790において実際のSMMコードにVMenterコールを発行する。SMMVM790におけるSMMコードは、ロックされたメモリページにおけるメモリ位置からの読み出し又はそれへの書き込みを試みるまで実行される。次いで、明示コールか又は捕捉をもたらす例外により、VMexit/VMcall724はVMexit/VMcallハンドラ754を呼び出すために生成されることが可能である。VMexit/VMcall724は、許可可能であるとみなされるそれらのメモリアクセスを実行し、次いで、他のVMenter522によりSMMVM790に戻る。このプロセスは、SMMVM790における所望のSMMコードが完了するまで、数回繰り返されることが可能である。このとき、SMMコードは、VMexit/VMcallハンドラ754にVMexit/VMcall724を経由してエグジットする。一部の実施形態に対して、VMexit/VMcallハンドラ754は、次いで、修正されたレジューム命令を先ず実行することにより、標準的なSVMM750動作にエグジットする。これは、SVMMSMMハンドラ452がロックされたメモリページに記憶されたVMexit/VMcallハンドラ454により修正される可能性がある状態データを回復させるようにする。他の実施形態に対しては、SVMMSMMハンドラ452及びVMexit/VMcallハンドラ454は結合されることが可能であり、これらの動作はソフトウェアにおいて実行されることが可能である。状態データの回復のとき、プロセッサはそのオリジナルの動作を再開する。開示した種々の実施形態は2つ又はそれ以上のプロセッサ論理プロセッサ又は物理プロセッサを含む一方、そのような複数のプロセッサ及び/又は複数のスレッドシステムは、複数の論理プロセッサ又は物理プロセッサを有するシステムをセキュアにすることに関連する付加的複雑性を述べるためにより詳細に説明されることを理解する必要がある。より複雑でないシステムにおいて有利である可能性がある実施形態は又、1つのプロセッサのみを用いることが可能である。一部の例においては、1つの物理プロセッサは、複数のスレッドとすることが可能であり、故に、複数の論理プロセッサを含むことが可能である。他の例においては、しかしながら、単一のプロセッサ、単一のスレッドシステムが用いられることが可能であり、更に、開示したセキュアな処理技術を利用することが可能である。そのような場合、セキュアな処理技術は、更に、データが認証されない方式で操作される又は盗難される可能性を低減するために機能する。上記の詳細説明において、本発明は、例示としての特定の実施形態に関して説明した。しかしながら、同時提出の特許請求の範囲から逸脱することなく、種々の修正及び変更を行うことが可能であることは明らかであろう。従って、上記の詳細説明及び図面は、制限的意味ではなく、例示であるとみなされる必要がある。"