"システムのプロセッサが、第一のアドレス空間と第二のアドレス空間との間でコンテクストを切り替えるステップと、前記プロセッサが、前記第二のアドレス空間が前記プロセッサのスクラッチパッドメモリに記憶されているアドレス空間のリストに存在するかを判定するステップと、前記プロセッサが、前記第二のアドレス空間が前記アドレス空間のリストに存在しない場合に、前記第二のアドレス空間へのコンテクストの切り替えの後に、前記第二のアドレス空間の新たなエントリであって、前記第一のアドレス空間の現在のエントリとは異なる新たなエントリを割り当てるステップと、前記第二のアドレス空間が前記アドレス空間のリストに存在する場合に、前記第二のアドレス空間へのコンテクストの切り替えの後に、前記第一のアドレス空間の前記現在のエントリを前記プロセッサの変換バッファに保持するステップと、を含むことを特徴とする方法。前記リストから前記第二のアドレス空間に対応するアドレス空間の識別子を取得し、前記アドレス空間の識別子を制御レジスタに記憶するステップと、を更に備える請求項1記載の方法。前記第二のアドレス空間が前記アドレス空間のリストに存在しない場合、前記変換バッファにおける選択されたアドレス空間のエントリをフラッシュするステップを更に備える、請求項1記載の方法。プロテクトされたロケーションへの記憶が前記切り替えを引き起こしたかを判定するステップを更に備える、請求項1記載の方法。前記記憶が前記切り替えを引き起こした場合、前記変換バッファから前記プロテクトされたロケーションに対応するエントリをフラッシュするステップを更に備える、請求項4記載の方法。前記プロテクトされたロケーションに対応する前記エントリをフラッシュする前記ステップは、無効なエントリ命令を使用して前記変換バッファにおけるリニアアドレスを無効にするステップを含む、請求項5記載の方法。前記第一のアドレス空間はゲストソフトウェアを有し、前記第二のアドレス空間は仮想マシンモニタを有する、請求項1記載の方法。仮想マシンのエグジット動作に関してエントリを保持するステップを更に備える、請求項7記載の方法。前記第一のアドレス空間は仮想マシンモニタを有し、前記第二のアドレス空間はゲストソフトウェアを有する、請求項1記載の方法。仮想マシンのエントリ動作に関してエントリを保持するステップを更に備える、請求項9記載の方法。第一のアドレス空間の識別子と第二のアドレス空間の識別子にそれぞれ対応する第一のアドレス空間と第二のアドレス空間のエントリを有するプロセッサリソースと、前記プロセッサリソースに結合される実行エンジンであって、前記第二のアドレス空間がプロセッサのスクラッチパッドメモリに記憶されているアドレス空間のリストに存在するかを判定し、前記第二のアドレス空間が前記アドレス空間のリストに存在しないと判定した場合に、前記第二のアドレス空間へのコンテクストの切り替えに応じて前記第二のアドレス空間の新たなエントリであって、前記第一のアドレス空間の現在のエントリとは異なる新たなエントリを割り当て、前記第二のアドレス空間がメモリに記憶されているアドレス空間のリストに存在すると判定した場合に、前記第二のアドレス空間へのコンテクストの切り替えに応じて前記第一のアドレス空間の前記エントリの少なくとも1部を保持する実行エンジンと、を備えることを特徴とする装置。前記プロセッサリソースに結合され、前記第一のアドレス空間の識別子と前記第二のアドレス空間の識別子を前記エントリに提供するアドレス空間バッファを更に備える、請求項11記載の装置。前記実行エンジンは、プロテクトされたロケーションへの記憶が前記コンテクストの切り替えを引き起こした場合、前記第一のアドレス空間のエントリを選択的にフラッシュするためのマイクロコードを実行する、請求項11記載の装置。前記プロセッサリソースは、変換ルックアサイドバッファを備える、請求項11記載の装置。第一のアドレス空間の識別子と第二のアドレス空間の識別子にそれぞれ対応する第一のアドレス空間と第二のアドレス空間のエントリを有するプロセッサリソース、及び前記プロセッサリソースに結合される実行エンジンであって、前記第二のアドレス空間がプロセッサのスクラッチパッドメモリに記憶されているアドレス空間のリストに存在するかを判定し、前記第二のアドレス空間が前記アドレス空間のリストに存在しないと判定した場合に、前記第二のアドレス空間へのコンテクストの切り替えに応じて前記第二のアドレス空間の新たなエントリであって、前記第一のアドレス空間の現在のエントリとは異なる新たなエントリを割り当て、前記第二のアドレス空間がメモリに記憶されているアドレス空間のリストに存在すると判定した場合に、前記第二のアドレス空間へのコンテクストの切り替えに応じて前記第一のアドレス空間のエントリの少なくとも1部を保持する実行エンジンを含むプロセッサと、前記プロセッサに結合されるダイナミックランダムアクセスメモリと、を備えるシステム。前記プロセッサリソースに結合され、前記第一のアドレス空間の識別子と前記第二のアドレス空間の識別子を前記プロセッサリソースに提供するためのアドレス空間バッファを更に備える、請求項15記載のシステム。前記プロセッサリソースにエントリを有するアドレス空間の識別子を記憶するためのアドレス空間の識別子リストを更に備える、請求項15記載のシステム。前記プロセッサリソースは、変換ルックアサイドバッファを備える、請求項15記載のシステム。本発明の様々な実施の形態では、TLB、トレースキャッシュTC、ブランチ予測ユニットBPUアレイ、ミニタグ等のようなパイプラインリソース又は構造は、多数のアドレス空間をサポートする。本明細書で使用されるように、用語アドレス空間とは、所与のアプリケーションたとえばコンテクストに対応するメモリにおけるアドレスのセットを意味する。様々な実施の形態では、アドレススペースは、リニア-物理変換を決定又は影響を及ぼす、たとえば、ページディレクトリベースレジスタCR3.PDBR、ページレベルキャッシュディスエーブルビットPCD、ページレベルライトスルービットPWTを含む制御レジスタ3;ページングビットCR0.PG、プロテクションイネーブルビットCR0.PEを含む制御レジスタ0;ページサイズエクステンションビットCR4.PSE及びページグローバルイネーブルビット及び物理アドレスエクステンションビットCR4.PGE及びPAE、エクステンデッドフィーチャイネーブルレジスタロングモードアドレッシングEFER.LMA及び実行なしビットEFER.NXEを含む制御レジスタ4アーキテクチャ制御レジスタの組み合わせにより制御される。様々な実施の形態では、アドレス空間識別子ASIDが使用され、各種パイプラインリソースにおけるリニアアドレスをそれらが関連されるコンテクストへのポインタで増加させる。本明細書で使用されるように、アドレス空間識別子は、何れかの数、コード、又は、それが関連される1以上のアドレス空間を識別する他の表記である。1実施の形態では、ASIDは、スレッド当たり2ビットのASIDすなわち4つのアドレス空間のコンテクストを使用して実現されるが、本発明の範囲は、そのように限定されるものではない。これにより、マルチプルアプリケーションコンテクストはパイプライン構造を共有することが可能であり、コンテクストの切り替えのオーバヘッドを低減する。たとえば、コンテクストの切り替えが行われたとき、現在のASID値は、パイプライン構造をフラッシュするよりはむしろ変化される。同様に、所定の実施の形態では、スレッド識別子スレッドIDは、対応するアドレス空間のための所与のプロセッサスレッドを識別するために提供される。様々なアーキテクチャイベントは、本発明の実施の形態に従ってTLBの選択的なフラッシュを生じさせる。たとえば、これらイベントは、CR0又はCR4におけるページングモードビットが変化した場合CR3に移動MOVtoCR3命令;CR0ページモードビット:CR0.PE及びCR0.PG及びEFER.LMAを変化;CR4ページモードビットを変化;VMEntry/Exit;32ビットコンテクストの切り替えを含む。予定の実施の形態では、これらのイベントのうち、MOVtoCR3動作又はVMエントリEntry/VMエグジットExitイベントのみがASIDを変化/インクリメントする。多くのパイプライン構造は、リニアにタグ付け又は索引付けされる。様々な実施の形態では、ASIDは、対応するアドレス空間へのポインタで、これらパイプラインリソースにおけるリニアアドレスを増加する。かかる実施の形態では、マイクロプロセッサは、新たなアドレス空間が形成されたとき、又は異なる以前に見られたアドレス空間に変化するときに更新される全体的な現在のASIDレジスタを保持する。TLBの挿入は、現在のASID値で拡張され、TLBは、ASIDタグが現在のASID値に一致する場合にのみ一致を照合する。コンテクストの切り替えたとえばMOVtoCR3、又はVMEntry/Exitがアドレス空間の変化をトリガしたとき、マイクロプロセッサは、TLB及び他のパイプライン構造をフラッシュする代わりに、新たなアドレス空間を表す異なるASID値に切り替える。所定の実施の形態では、特定のアドレス空間に対応するエントリをフラッシュしないか、若しくはエントリの一部又は全部をフラッシュするかにより、多数のコンテクストにより環境について大幅なパフォーマンスのゲインが提供される。図1を参照して、本発明の実施の形態に係るリニアアドレス変換が示されており、64ビットのアドレス変換を含んでいる。図1に示されるように、メモリ240におけるページは、リニアアドレス300を使用してアドレス指定される。図示されるように、リニアアドレス300は、メモリ240における物理アドレスにアクセスするための4レベルのページング構造を索引付けするため、多数のフィールドを含む。オフセットフィールドビット0-11は、メモリ240のページ内で物理アドレスをアドレス指定するために使用される。ページテーブルエントリビット12-20は、ページテーブルPT310におけるページテーブルエントリのアドレスを決める。ページディレクトリポインタビット30-38は、ページディレクトリポインタテーブルPDPT330におけるページディレクトリポインタエントリのアドレスを決める。最後に、ページマップレベル4PML4ポインタビット39-47は、PML4340におけるPML4エントリのアドレスを決める。PML4340のベースは、CR3におけるポインタを使用してアクセスされる。かかるように、64ビットリニアアドレスは、物理アドレスにアクセスするための4レベルページング構造を実現するために使用される。様々な実施の形態では、実施の形態に係るTLBは、対応するリニア及び物理アドレスに合わせて、物理アドレスタグアドレス、及び関連される有効なスレッドID及びASIDビットを含む。TLBエントリは、それらが対応するアドレス空間を示すそれらのタグにおけるASIDフィールドを含む。そのASIDフィールドは、そのTLBエントリがロードされたとき、現在のASIDの値を含む。ASIDフィールドはTLBエントリにおけるタグにあるので、TLBエントリは、現在のASID値がそのTLBエントリにおけるASIDフィールドに一致する場合にのみヒットする。アドレス空間の変化すなわちコンテクストの切り替え、マイクロコードは、現在のアドレス空間/ASIDCR3,CR0及びCR4ページングビット、LMAに関する情報をスクラッチパッドに保存し、新たなアドレス空間をそれぞれのASIDの記憶されたアドレス空間情報に比較する。記憶されたアドレス空間/ASIDが新たなアドレス空間に一致しない場合、アドレス空間は前に見られていない。したがって、マイクロコードは、このアドレス空間のために新たなASIDを割り当てるか、又は、既存のASIDを選択し、たとえば最も過去に使用されたLRU:aLeastRecentlyUsedポリシーと置き換える。後者のケースでは、マイクロコードは、LRUASIDのためにTLBエントリをフラッシュする。ここで図2を参照して、本発明の1実施の形態に係るシステムの一部のブロック図が示されている。図2に示されているように、システム10は、第一のゲストソフトウェアすなわち第一のゲスト30,第二のゲストソフトウェアすなわち第二のゲスト40及び仮想マシンエクステンションVMX:VirtualMachineeXtentionモニタ50を含めて、システムメモリ20及び様々なソフトウェアエンティティを含む。1実施の形態では、システムメモリ20は、両方のコードを含み、たとえばダイナミックランダムアクセスメモリDRAMから構成されている。図2の実施の形態では、VMXモニタ50は、1以上の仮想マシンのアブストラクションを他のソフトウェアたとえばゲストソフトウェアに提供する。VMXモニタ50は、同じ又は異なるアブストラクションを様々なゲストに提供する。それぞれのVMで実行しているゲストソフトウェアは、ゲストOS及び様々なゲストソフトウェアアプリケーションを含む。集合的に、ゲストOS及びソフトウェアアプリケーションは、本明細書ではゲストソフトウェアと呼ばれる。ゲストソフトウェアは、ゲストソフトウェアが実行されているVM内のたとえばプロセッサレジスタ、メモリ及び入力/出力I/O装置といった物理的なリソースにアクセスするのを期待する。VMXモニタ50は、プラットフォームハードウェア内のリソースにわたる最終的な制御を保持する間、ゲストソフトウェアにより望まれるリソースへのアクセスを容易にする。1実施の形態では、図2に特に示されない仮想マシン制御構造VMCSにおける1以上の専用フィールドに記憶されるデータを使用して、基準制御伝達基準及び/又は故障基準が定義される。たとえば、VMCSは、ゲストソフトウェアの状態及びその動作を制御するための情報を記憶する。VMCSは、メモリ20にあり、プロセッサにより保持される。他のデータ構造たとえばオンチップキャッシュ、ファイル、ルックアップテーブル等は、VMCSに記憶される情報を記憶するために使用されることが理解される。1実施の形態では、現在のイベントがVMXモニタ50により処理される必要があると伝達基準が判定した場合、VMXモニタ50に制御が移る。VMXモニタ50は、そのイベントを処理し、ゲストソフトウェアに制御を移す。VMM又はVMXモニタからゲストソフトウェアへの制御の転送は、本明細書ではVMエントリと呼ばれ、ゲストソフトウェアからVMM又はVMXモニタへの制御の転送は、本明細書ではVMエグジットと呼ばれる。図2に示されるように、メモリ20は、第一のゲストソフトウェア30のためのページテーブルエントリPTEを使用してアクセスされる第一のページ35、第二のゲストソフトウェア40のためのPTEを使用してアクセスされる第二のページ45を含む。すなわち、第一のページ35及び第二のページ45は、第一のゲスト30及び第二のゲスト40のそれぞれに対応するコード及び/又はデータを含む。図2の実施の形態では、メモリ20は、両方のコード及びデータを含む物理的なアドレス空間に対応し、ゲストソフトウェア30及びゲストソフトウェア40のASIDに対応するアドレスは、物理アドレス空間を示すために使用されるリニアアドレス又はその一部に対応する。更に図2を参照して、第一のゲスト30は、第一のASIDの値すなわちASID=1を有し、第一のアドレス空間に対応するCR3値を更に含む。また、第二のゲスト40は、第二のASID値すなわちASID=2を有し、それに関連されるCR3値を更に有する。第一のソフトウェア30及び第二のソフトウェア40の実行を制御するVMXモニタは、それに関連されるASID値をも有する。たとえば、図2の実施の形態に示されるように、VMXモニタ50は、それに関連される3つのASID値を有する。図2に示されるように、MOVtoCR3命令は、矢印55により示されるように、コンテクストの切り替えを生じさせるために実行される。さらに、VMXモニタ50は、VMXモニタ50に強制的に制御を戻すために現在実行しているゲストからエグジットさせる、参照符号60で表される、VMエグジットを行わせることでゲストソフトウェアの動作を制御する。同様に、VMXモニタ50は、図2における参照符号70により表されるVMエントリを実行することでゲストの始動又は再始動を行わせる。様々な実施の形態では、VMXアーキテクチャエンハンスメントにより、VMXモニタは、ASIDを使用することで、コンテクストの切り替え及びVMXの遷移に関して、TLB又は他の類似のプロセッサリソースをフラッシュするのを回避することができる。様々な実施の形態では、ソフトウェア又はハードウェアにおける明示的なASID管理は、クロスアドレス空間の汚染crossaddressspacepollutionを検出するために必要とされない。様々な実施の形態では、MOVtoCR3命令、VMエグジット、又はVMエントリを使用して実行されるコンテクストの切り替えを含めて、図2に示されるようなイベントに応じて、TLB及び他のプロセッサリソースのフラッシュが回避され、パフォーマンスが改善され、かかるコンテクストの切り替え及び他のアーキテクチャイベントに関するオーバヘッドが低減される。所定の実施の形態では、システムメモリ20内のページ又は他のキャッシュされたページは、全てのアドレス空間にわたりVMXモニタ50によりプロテクトされ、試みられたかかるページへの記憶は、かかる記憶を始動するゲストソフトウェアからのVMXエグジットを引き起こす。かかるイベントに関して、VMXモニタ50は、かかる記憶に対応するアドレスを全てのTLB及び他のプロセッサリソースにおいて無効にさせる。様々な実施の形態では、プロセッサは、所定のイベント及びVMX遷移を異なって処理する。異なる命令及びイベントのかかる異なる実現は、プロセッサのマイクロコードで行われる。たとえば、ゲストにおけるMOVtoCR3命令、VMエグジット又はVMエントリに関して、プロセッサは、新たなアドレス空間に一致する既存のASIDを探す。かかる決定は、新たなアドレス空間のASIDをプロセッサにより保持されるASIDのリストに比較することで行われる。一致が存在する場合、プロセッサは、TLBエントリをフラッシュすることなしに、そのASIDを現在のASIDにする。さもなければ、1実施の形態では、LRUASIDに対応する全てのTLBエントリはフラッシュされ、最も過去に使用されたASIDのASID値は、現在のASIDにされる。前のアドレス空間からのTLBエントリは、そのASIDがフラッシュされない場合に保持される。対照的に、指定されたページについてTLBエントリを無効にする命令たとえばINVLPG命令は、異なって扱われる。たとえば、1実施の形態では、リニアアドレス空間は、かかる命令に応じて全てのTLBで無効にされる。更に異なる動作は、他の命令について行われる。たとえば、1実施の形態では、CR4値において変化を検出しないMOVtoCR4命令は、それぞれのASIDにおける全てのTLBエントリを無効にする。ここで図3を参照して、本発明の1実施の形態に係る方法のフローチャートが示されている。方法100は、プロセッサ内で異なるコンテクスト間で切り替えるために使用される。図3に示されるように、第一及び第二のアドレス空間の間の切り替えが行われるブロック110。図3に示されていないが、かかる切り替えの前に、第一のアドレス空間は、現在のアドレス空間の識別子に対応する制御レジスタ又は他のメモリに保存される。他の実施の形態では、かかる保存は、他の時間で行われる場合がある。アドレス空間の切り替えは、VMエグジット又はVMエントリに対応するか、MOVtoCR3命令又は別の係るイベントにより引き起こされる場合がある。つぎに、第二のアドレス空間がASIDリストに存在するかが判定されるダイアモンド120。かかるリストは、異なるアクティブなアドレス空間、これに対応するリニアアドレス空間における位置、及び任意に他の情報を識別するため、プロセッサにより保持される。たとえば、ASIDリストは、プロセッサにおけるスクラッチパッドである。第二のアドレス空間がASIDリストに存在する場合、制御はブロック130に移り、ここで、第一のアドレス空間は、第一のアドレス空間に対応するTLB内のエントリを含めて保持される。さらに、第二のASIDは、第二のアドレス空間すなわちダイアモンド120で検されたアドレス空間がプロセッサ内の現在実行しているアドレス空間であることを示すため、たとえば現在のASIDレジスタ又は他のメモリロケーションプロセッサの制御レジスタに記憶されるブロック135。代わりにダイアモンド120で、第二のアドレス空間がASIDリストに存在しないと判定された場合、つぎに、ASIDリストがフルであるかが判定されるダイアモンド140。リストがフルでない場合、制御はブロック145に移り、ここで、第一のアドレス空間は、第一のアドレス空間に対応するTLB内のエントリを含めて保持される。さらに、第二のASIDは、第二のアドレス空間以下に説明される、ブロック160からのエンプティアドレス空間又はフリードアドレス空間がプロセッサ内の現在実行しているアドレス空間であることを示すために、たとえば、現在のASIDレジスタ、又は他のメモリロケーションプロセッサの制御レジスタに記憶されるブロック150。ダイアモンド140で、代わりに、ASIDリストがフルであることが判定され、ASIDリストにおけるLRUエントリに対応するTLB内のエントリがフラッシュされるダイアモンド160。次いで、制御は、先に説明したように更なる処理のためにブロック145に移り、ここで、第二のASIDは、LRUエントリに記憶される場合がある。これに応じて、第二のASIDに関連されるTLBエントリ及び他のリソースがイネーブルにされる。図3の実施の形態では、TLBエントリをフラッシュするためのLRUポリシーを使用するものとして示されているが、他の実施の形態では、ASIDリストがフルであるときにフラッシュするための適切なアドレス空間を判定するために、他のポリシー又はメカニズムが使用されることを理解されたい。所定の実施の形態では、アドレス空間の切り替えの原因に依存して、TLB又は他のプロセッサリソース内の特定のエントリがソフトウェアを使用してフラッシュされる。たとえば、先に説明されたように、プロテクトされたページへの試みられた記憶によりVMエグジットが引き起こされた場合、プロテクトされた空間に対応するTLB内のアドレスがフラッシュされる。すなわち、VMXアーキテクチャの様々な実現では、VMXモニタは、それぞれのページングヒエラルキーをプロテクトする。可視化の環境では、ソフトウェアが使用され、ゲストにより命令されたとしてTLB又は他のリソースをフラッシュする。次いで、ゲストにより行われた所定のイベントたとえば、MOVtoCR3命令は、可視化のソフトウェアが本明細書で記載されたようにフラッシュアクティビティを扱うためにリソースをフラッシュしない。したがって、ゲストでは、記憶の命令がCR3ターゲット値におけるCR3により使用されるTLBエントリを変更する場合、VMエグジットが行われる。本発明の実施の形態に係るトランスルーセントなASIDによれば、かかるVMエグジットの後、ソフトウェアは、たとえTLBエントリがVMエグジットの時間でゲストにより使用中でなかったとしても、VMエグジットを生じた記憶の命令に対応する全てのTLBエントリをフラッシュする。かかる実施の形態では、ソフトウェアが個々のエントリをフラッシュするのを望む場合、ソフトウェアは、適切なアドレス空間でそのTLBエントリに対応するリニアアドレスでINVLPG命令を実行する。かかるソフトウェアで発せられるINVLPGについて、プロセッサは、それらのASIDに関わらず、そのリニアアドレスに対応するTLBエントリをフラッシュする。INVLPG命令を使用して実現されるとして記載されたが、他の実施の形態では、他の命令又は動作は、かかるエントリをフラッシュする場合がある。ここで図4を参照して、本発明の1実施の形態に係る方法のフローチャートが示されている。より詳細には、図4は、TLB内の所定のエントリをフラッシュするための方法200を示す。かかる方法は、VM環境で実行され、VMエグジットに応じて始動される。図4で示されるように、本方法200は、VMエグジットの原因を判定することで開始されるブロック210。たとえば、1実施の形態では、VMエグジットの前の最後の動作は、プロテクトされたメモリ空間への記憶又は他のメモリ動作がVMエグジットを引き起こしたかを判定するために分析される。勿論、VMエグジットが生じた多くの他の理由が存在する。次いで、ダイアモンド220で、記憶動作がたとえば異なるアドレス空間に対応するプロテクトされたTLBエントリのようなプロテクトされたエントリを変更するために試みられたかが判定される。試みたと判定されなかった場合、VMXモニタの通常の実行が継続されるブロック230。かかる実行は、プログラム命令に依存して、多くの形式をとる。かかる実行の後、望まれる場合、制御はゲストに戻る。代わりに、記憶がプロテクトされたエントリを変更するのを試みたと判定された場合、VMXモニタは、ゲストが有さないプロテクトされたロケーションへのアクセスを有するので、記憶動作を実行するブロック235。次いで、記憶アドレスに対応する全てのTLBエントリは、全てのTLB及び他のプロセッサリソースからフラッシュされるブロック240。VMエントリは、継続された実行のためにゲストに制御を戻すブロック245。かかる実行は、たとえばゲストの次の命令で継続する。更に他の実施の形態では、全てのTLB内の全てのエントリをフラッシュすることが望まれる場合がある。たとえば、ハイレベルのページングメカニズムが変更された場合、かかるフラッシュは、VMXモニタがもはやそれをプロテクトしないとき、TLBをクリアするか又はTLBからアドレス空間を除くことが望まれる。1実施の形態では、ソフトウェアがアドレス空間について全体のTLBをフラッシュすることを望む場合、ソフトウェアは、そこに既に記憶された正確に同じ値でMOVtoCR4を実行する。プロセッサがかかるCR4writeを見たとき、どのASIDがフラッシュされる必要があるかをソフトウェアが指定しないので、全てのASIDについて全てのTLBをフラッシュする。様々な実施の形態では、PDE又は高いエントリが変化された場合、又は、CR3がCR3ターゲット値から除かれ、モニタがそれをもはやプロテクトしない場合、ソフトウェアは、アドレス空間について全体のTLBをフラッシュする場合がある。ここで図5を参照して、本発明の実施の形態に係る別の方法のフローチャートが示されている。特に、本方法250は、全てのASIDについて全てのTLBをフラッシュするために使用される。図5に示されるように、かかる方法は、MOVtoCR4命令を受信することで始まる楕円255。かかる命令の受信に応じて、プロセッサは、新たなCR4の値がその前の値と同じであるかを判定するダイアモンド260。新たなアドレス値が同じでない場合、通常のCR4の動作が実行されるブロック270。かかる動作は、CR4における異なるビットの状態に基づいて変化する。たとえば、ビット状態に基づいて、TLBのようなプロセッサリソースがフラッシュされ、他の処理が行われる。たとえば、データを変えるCR4の遷移は、少なくとも現在のTLBにおけるエントリをフラッシュするための必要を引き起こす。さらに、かかるCR4の遷移は、アドレス空間における変換を必要とする。かかるアドレス空間の変化は、図3に関して先に記載されたのと類似のやり方で実行される場合がある。代わりに、新たな値が前の値と同じであると判定された場合、これは、VMXモニタ又は他のエンティティが全てのTLBをフラッシュするのを望むことを示すフラグである。先に記載されたように、全てのTLBをフラッシュするために様々な理由がある。これに応じて、ブロック280で、全てのTLBは、全てのASIDについてフラッシュされる。最後に、実行は、たとえば同じ命令で同じすなわちオリジナルのアドレス空間で継続するブロック290。MOVtoCR4命令に応じて実現されるように図5の実施の形態において記載されたが、他の実施の形態において、VMXモニタ又は他のエンティティが全てのTLBをフラッシュするのを望むことを示すためのフラグとして、他の命令又は動作が使用される場合があることを理解されたい。さらに、この特定の実現により図5を参照して記載されたが、他の実施の形態では、予め決定された命令から得られる選択された値が、値が変化したかを判定するために分析される場合がある。値が変化していないと判定するため、所望のアクションが1以上のプロセッサリソースで行われる。ここで図6を参照して、本発明の1実施の形態に係る代表的なコンピュータシステム400のブロック図が示されている。図6に示されるように、コンピュータシステム400は、プロセッサ401を含む。プロセッサ401は、1実施の形態では、メモリバスを介して共有されるメインメモリ440に結合される、メモリハブ430にフロントサイドバス420を通して結合される。図6に示されるように、プロセッサ401は、本発明の実施の形態に係るTLB403及びASIDリスト405を含む場合がある。さらに、レベル2L2キャッシュ407がプロセッサ401に結合される。また、メモリハブ430は、I/O拡張バス455及び周辺バス450に結合されるI/Oハブ435にハブリンクを介して結合される。様々な実施の形態では、I/O拡張バス455は、他の装置のうちで、キーボード及びマウスのような各種I/O装置に結合される。周辺バス450は、フラッシュメモリ、アッドインカード等のようなメモリ装置である周辺装置470のような各種コンポーネントに結合される。記述はシステム400の特定のコンポーネントを参照してなされるが、例示された実施の形態の様々な変更が可能である。実施の形態は、コンピュータシステムが実施の形態を実行するのをプログラムするための命令を有する記憶媒体に記憶されたコンピュータプログラムで実現される。記憶媒体は、限定されるものではないが、フロプティカルディスク、光ディスク、コンパクトディスクリードオンリメモリCD-ROM、コンパクトディスクリライタブルCD-RW及び光磁気ディスクのようなディスクタイプ、リードオンリメモリROM、ダイナミックRAM及びスタティックRAMのようなランダムアクセスメモリRAM、イレーザブルプログラマブルリードオンリメモリEPROM、エレクトリカリイレーザブルプログラマブルリードオンリメモリEEPROM、フラッシュメモリのような半導体デバイス、磁気又は光カード、若しくは、電気的な命令を記憶するために適したメディアのタイプを含んでいる。他の実施の形態は、プログラマブル制御装置により実行されるソフトウェアモジュールとして実現される。ソフトウェアがプロセッサプロテクト及び無効なTLBエントリに役立つため、様々な実施の形態では、TLBエントリは、たとえばMOVtoCR3,VMエグジット及びVMエントリといったコンテクストの切り替えに関して保持される。したがって、様々な実施の形態では、覗きまわるsnoopyTLBハードウェアが必要とされず、覗きまわるTLBのキャパシティ又は他の制約が回避される。他の実施の形態では、トランスルーセントなASIDは、異なるアドレス空間にIDを明示的に割り当てないが、たとえそのTLBが現在のアドレス空間により現在使用中ではないとしても、ページテーブルを変更した後にTLBエントリをフラッシュするための特別のアクションをプロセッサが行うことを必要とする、アーキテクチャを含むページテーブルで使用される。したがって、様々な実施の形態では、プロセッサは、クロスアドレス空間の汚染を検出するための専用のハードウェア、若しくは明示的なソフトウェア制御及びASID割り当てなしに、ASIDをサポートし、たとえばコンテクストの切り替えに関してTLBフラッシュを回避する。本発明は制限された数の実施の形態に関して記載されたが、当業者であれば、これより様々な変更及び変形を理解されるであろう。特許請求の範囲は、本発明の真の精神及び範囲に含まれるとして全ての係る変更及び変形をカバーすることが意図される。"