複数の仮想マシンを実装する1つ以上のプロセッサを備えるシステムにおいて、前記複数の仮想マシンのうちの対応する仮想マシンに関連して実行されるオペレーティングシステムの第1の識別子を表す第1の検索キーを使用して、トランスレーションルックアサイドバッファTLBルックアップを実施することを含み、前記第1の検索キーが前記第1の識別子よりも少ないビットを有する、方法。前記オペレーティングシステムによって管理される仮想アドレス空間の第2の識別子を表す第2の検索キーをさらに使用して、前記TLBルックアップを実施することをさらに含み、前記第2の検索キーが前記第2の識別子よりも少ないビットを有する、請求項1に記載の方法。複数のエントリを含み、各エントリが、対応する経路に関連し、仮想マシンによって実行されるオペレーティングシステムの識別子を記憶するように構成される、第1のテーブルに、前記第1の識別子に基づいてアクセスすることと、前記第1の識別子を記憶する前記第1のテーブルの選択エントリの第1の経路に基づいて、前記第1の検索キーを判定することと、をさらに含む、請求項2に記載の方法。その各エントリが、対応する経路を有し、対応するオペレーティングシステムによって管理される仮想アドレス空間の識別子を記憶するように構成される、第2のテーブルの複数のインデックスのうちの選択インデックスを、前記第1の経路に基づいて判定し、前記第2の識別子に基づいて前記選択インデックスにアクセスすることと、第2の識別子を記憶する前記選択インデックスの選択エントリの第2の経路に基づいて、前記第2の検索キーを判定することと、をさらに含む、請求項3に記載の方法。前記第1の検索キーが、前記第1の経路によって判定され、前記第2の検索キーが、前記第2の経路によって判定される、請求項4に記載の方法。前記第1のテーブルの前記選択エントリに対する前記第1の識別子を記憶することと、前記第2のテーブルの前記選択インデックスの前記エントリをフラッシュし、前記選択インデックスの前記選択エントリに対する前記第2の識別子を記憶することと、をさらに含む、請求項4に記載の方法。前記TLBルックアップを実施することが、前記第1の検索キーを有し、かつ前記第2の識別子または設定グローバルビットのうちの少なくとも1つを有する、前記TLBの選択エントリを識別するために、TLBにアクセスすることと、前記TLBの前記選択エントリに記憶されたページ番号に基づいて、物理アドレスを生成することと、を含む、請求項1に記載の方法。1組の命令を記憶するためのコンピュータ可読媒体であって、前記1組の命令が、請求項1に記載の方法を実装するために前記システムの設計を判定するように構成されるハードウェア記述言語HDL命令を含む、コンピュータ可読媒体。複数の仮想マシンを実装する1つ以上のプロセッサを備えるシステムにおいて、前記複数の仮想マシンのうちの選択仮想マシンに関連して実行されるオペレーティングシステムの第1の識別子を判定し、前記オペレーティングシステムによって管理される仮想アドレス空間の第2の識別子を判定することと、複数のエントリを含み、各エントリが、対応する経路を有し、前記システムの対応する仮想マシンに関連するオペレーティングシステムの識別子を記憶するように構成される、第1のテーブルに、前記第1の識別子に基づいてアクセスすることと、前記第1の識別子を記憶する前記第1のテーブルの選択エントリの第1の経路に基づいて、前記第1の検索キーを判定することと、その各エントリが、対応する経路を有し、対応する仮想マシンのオペレーティングシシステムによって管理される仮想アドレス空間の識別子を記憶するように構成される、第2のテーブルの複数のインデックスのうちの選択インデックスを、前記第1の経路に基づいて判定し、前記第2の識別子に基づいて、前記選択インデックスにアクセスすることと、前記第2の識別子を記憶する前記選択インデックスの選択エントリの第2の経路に基づいて、前記第2の検索キーを判定することと、を含む、方法。ページオフセットを判定するために、前記第1の検索キーおよび前記第2の検索キーを使用して、トランスレーションルックアサイドバッファTLBルックアップを実施することと、前記ページオフセットおよび前記仮想アドレスに基づいて、物理アドレスを生成することと、をさらに含む、請求項9に記載の方法。前記TLBルックアップを実施することが、前記第1の検索キーを有し、かつ前記第2の識別子または設定グローバルビットのうちの少なくとも1つを有する、前記TLBの選択エントリを識別するために前記TLBにアクセスすることを含む、請求項10に記載の方法。前記第1の検索キーが、前記第1の識別子よりも少ないビットを有し、前記第2の検索キーが、前記第2の識別子よりも少ないビットを有する、請求項9に記載の方法。1組の命令を記憶するためのコンピュータ可読媒体であって、前記1組の命令が、請求項9に記載の方法を実装するために前記システムの設計を判定するように構成されるハードウェア記述言語HDL命令を含む、コンピュータ可読媒体。処理システムであって、トランスレーションルックアサイドバッファTLBと、前記処理システムによって実装される複数の仮想マシンのうちの仮想マシンに関連して実行されるオペレーティングシステムの第1の識別子を表す第1の検索キーを使用して、TLBルックアップを実施するためのハードウェアコントローラであって、前記第1の検索キーが前記第1の識別子よりも少ないビットを有する、ハードウェアコントローラと、を備える、処理システム。前記ハードウェアコントローラがさらに、前記オペレーティングシステムによって管理される仮想アドレス空間の第2の識別子を表す第2の検索キーを使用して、前記TLBルックアップを実施するためのものであり、前記第2の検索キーが前記第2の識別子よりも少ないビットを有する、請求項14に記載の処理システム。複数のエントリを含む第1のテーブルであって、各エントリが、対応する経路を有し、対応する仮想マシンによって実行されるオペレーティングシステムの識別子を記憶するように構成される、第1のテーブルをさらに備え、前記ハードウェアコントローラが、前記第1の識別子を記憶する前記第1のテーブルの選択エントリの第1の経路に基づいて、前記第1の検索キーを判定するためのものである、請求項15に記載の処理システム。複数のインデックスを含む第2のテーブルであって、各インデックスが、前記第1のテーブルの対応するエントリに関連し、各インデックスが、複数のエントリを含み、前記第2のテーブルの各エントリが、対応する経路を有し、対応する仮想マシンのオペレーティングシステムによって管理される仮想アドレス空間の識別子を記憶するように構成される、第2のテーブルをさらに備え、前記ハードウェアコントローラが、前記第1の経路に基づいて前記複数のインデックスのうちの選択インデックスを判定し、前記第2の識別子を記憶する前記選択インデックスの選択エントリの第2の経路に基づいて前記第2の検索キーを判定するためのものである、請求項15に記載の処理システム。前記第1の検索キーが、前記第1の経路であり、前記第2の検索キーが、前記第2の経路である、請求項17に記載の処理システム。前記ハードウェアコントローラがさらに、前記第1のテーブルの前記選択エントリに対する前記第1の識別子を記憶し、前記選択インデックスの前記エントリをフラッシュし、前記選択インデックスの前記選択エントリに対する前記第2の識別子を記憶するためのものである、請求項17に記載の処理システム。前記ハードウェアコントローラが、前記第1の検索キーを有し、かつ前記第2の識別子または設定グローバルビットのうちの少なくとも1つを有する、前記TLBの選択エントリを識別するために、前記TLBにアクセスすることによって、前記TLBルックアップを実施するためのものであり、前記ハードウェアコントローラがさらに、前記TLBの前記選択エントリに記憶されたページ番号に基づいて、物理アドレスを生成するためのものである、請求項14に記載の処理システム。プロセッサの仮想化の出現により、処理システム内に実装される場合がある異なる仮想アドレス空間の数に起因して、また実装された仮想マシンの中で効果的隔離を提供したいという望みに起因して、この仮想アドレスから物理アドレスへのマッピングが複雑化している。処理システムは、対応する仮想アドレス空間を表す識別子を使用して、TLBタグ付けをサポートする場合がある。これらの識別子はしばしば、何十ものビットを有し、このサイズの検索を取り扱うために必要なTLBヒットロジックは、概して、実装が極めて複雑である。したがって、従来の仮想化処理システムはしばしば、ソフトウェアの制御下でこれらのアドレスマッピングを維持し、実装するために必要とされる相当なオーバーヘッドを犠牲にして、ソフトウェアベースのアドレスマッピングを利用している。図1~図4は、仮想化処理環境における仮想アドレスから物理アドレスへの変換のための例示的技法を示す。少なくとも一実施形態において、処理システムは、ハイパーバイザ仮想マシンマネージャ、すなわちVMMとしても知られるによって管理される複数の仮想マシンを実装する、1つ以上のプロセッサを有する。各仮想マシンは、1つ以上の仮想プロセッサのために安全かつ隔離されたハードウェアエミュレーション環境を提供し、それによって、各仮想プロセッサが対応するゲストオペレーティングシステムOSを実行する。各ゲストOS/仮想プロセッサ、ならびにハイパーバイザ自体は、関連のアドレス空間を有する。さらに、各仮想マシンおよびハイパーバイザは、仮想マシンのゲストOSの制御下で実行された特定のソフトウェアアプリケーションに関連するアドレス空間等の、複数の下位レベルのアドレス空間を管理することができる。各ゲストOSは一般的に、本明細書ではWorldIDとして称される、特定の識別子を使用して識別され、ゲストOSによって管理される下位レベルのアドレス空間は、本明細書ではアドレス空間識別子またはASIDと称される、特定の識別子を使用して識別される。典型的に、WorldIDおよびASIDは、長さが何十ものビットであり、そのため、TLBヒットロジックによって直接使用されるには大き過ぎる場合がある。したがって、少なくとも一実施形態において、以下に記載の処理システムのアドレス変換ロジックは、処理システムの現在の仮想アドレス空間コンテキストに関連するWorldIDおよびASIDを、本来の識別子よりも少ないビットを有し、このため、複雑度の低いTLBヒットロジックを必要とする、対応するWorldIDおよびASID検索キーに変換する。得られたWorldID検索キーおよびASID検索キーはバッファされ、1つ以上のTLBルックアップを実施して、WorldID/ASIDの組み合わせによって表される特定のアドレス空間に関するアドレスマッピング情報を取得するために使用される。アドレスマッピング情報は、次いで、メモリアクセスリクエストに関連する仮想アドレスを、対応する物理アドレスに変換するために使用される。図1は、本開示の少なくとも一実施形態による、ハードウェアベースの仮想アドレスから物理アドレスへのマッピングを実装する仮想化処理システム100を示す。図示される例において、処理システム100は、1つ以上のプロセッサ102と、メモリサブシステム104とを含む。プロセッサ102は、1つ以上のプロセッサコア106と、キャッシュサブシステム108と、メモリ管理ユニットMMU110とを含む。メモリサブシステム104は、1つ以上のバス、クロスバースイッチ、またはこれらの組み合わせを介して、プロセッサコア106およびキャッシュサブシステム108に接続される。メモリサブシステム104は、システムメモリと、外部キャッシュと、入力/出力I/Oデバイスと、処理システム100の全アドレス空間内の1つ以上の物理アドレスが割り当てられた他のコンポーネントとを含むことができる。一実施形態において、プロセッサ102のコンポーネントのうちのいくつかまたは全ては、処理デバイスの電気および電子設計を生成するように統合される、プロセッサ102の機能性を定義する、1組のレジスタ転送レベルRTLまたはベリログVerilog命令に基づいて、設計することができる。処理システム100は、複数のゲストオペレーティングシステムOSの実装を制御するハイパーバイザ112仮想マシンマネージャ、すなわちVMMとしても知られるを実装する仮想化ソフトウェアまたは仮想化ファームウェアの実行を通して、1つ以上のソフトウェアベースの仮想マシンを実装するために、仮想化をサポートするように構成される。ハイパーバイザ112は、各ゲストOSの動作と関係するアプリケーションの動作との安全な隔離を保証するために、ページテーブルの変更等、ある所定の動作をインターセプトし、エミュレートすることによって、プロセッサシステム100の処理ハードウェア114に関する完全制御の状況を各ゲストOSに提供する。したがって、ゲストOSおよびゲストOSによって制御される任意の対応するアプリケーションの実行が、仮想マシンと称される。図1は、これによりハイパーバイザ112が、仮想マシン116、117、118、および119それぞれ、VM1、VM2、VM3、およびVM4とも称されるという、4つの仮想マシンを管理する例を示す。例示を簡便にするために、各仮想マシン116は、単一のOSをサポートするものとして図示される。仮想マシン116は、アプリケーション122および123AS1およびAS2を含むゲストOS121を実行し、仮想マシン117は、アプリケーション125AS3を含むゲストOS124を実行し、仮想マシン118は、ゲストOS126を実行し、仮想マシン119は、アプリケーション128および129AS4およびAS5を含むゲストOS127を実行する。他の実装において、各仮想マシンは、複数のゲストオペレーションシステムをサポートすることができる。仮想化の一般的な目標は、オペレーティングシステムとそれらに関連するソフトウェアアプリケーションとの間にリソースを保証する安全な隔離を維持しながら、単一の処理デバイスが複数のオペレーティングシステムを稼動することを可能にすることである。この隔離を実装するために、ゲストOSがアクセスすることを許可されている特定のメモリ場所を制御するよう、異なるゲストオペレーティングシステム/仮想マシンに対して、異なる仮想アドレス空間が使用される。各ゲストOSは、メモリサブシステム104に対する独自の世界において動作し、このため、各ゲストOSには、本明細書ではWorldIDと称される、一意の識別子が割り当てられる。さらに、所与のOS環境内でアプリケーションを隔離することはしばしば利点であり、このため、各ゲストOSは、ゲストOSまたはゲストOSによってサポートされるソフトウェアアプリケーションのある所定のカーネル動作等、ゲストOSによってサポートされる特定の機能に対して異なる仮想アドレス空間を割り当てる場合がある。例示のために、アプリケーション122および123の各々は、ゲストOS121によって割り当てられた別々のアドレス空間の中で動作してもよく、または、ゲストOS121が、アプリケーション122および123の両方に対して同じアドレス空間を実装してもよい。処理システム100は、本明細書ではアドレス空間識別子またはASIDと称される、一意の識別子を、ゲストOSによって管理される各仮想アドレス空間に関連付ける。このように、特定のWorldIDおよび特定のASIDの組み合わせは、対応するページテーブル、または1組のページテーブルを識別し、これが、特定のWorldIDおよびASIDに関連するアプリケーションまたはOSによって生成された仮想アドレスを、対応する物理アドレスに変換するために使用される。例示を簡便にするために、これによってMMU110がこの仮想アドレスから物理アドレスへの変換を提供するように構成され、かつ別の方法で、異なる仮想マシン116~119内で開始されたメモリアクセスリクエストを促進する実施形態が記載される。しかしながら、他の実施形態において、本明細書に記載されるアドレス変換技法は、処理システム100の他のコンポーネントによって実装されてもよい。例えば、開示されるアドレス変換技法は、キャッシュサブシステム108のTLBロジック111によって、または命令キャッシュ図示せずのTLBロジックによって実装される場合がある。一実施形態において、MMU110は、1つ以上のページテーブル130と、トランスレーションルックアサイドバッファTLB132と、1組の検索キーテーブル134および136と、ハードウェアコントローラ138とを含む。各ページテーブル130は、特定の仮想アドレス空間の仮想アドレスと対応する物理アドレスとの間のマッピングを表す情報を記憶する。TLB132は、処理システム100によって最近使用された仮想アドレスから物理アドレスへのマッピングをキャッシュする。検索キーテーブル134および136は、以下に詳細を記載するように、仮想マシン116~119において使用されたWorldIDおよびASIDから、TLB132のTLBヒットロジックのための検索キーを生成するために使用される。ハードウェアコントローラ138は、メモリサブシステム104へのアクセスを管理するように動作する。仮想マシンが、メモリがマッピングされた場所にアクセスを試みると、ハイパーバイザ112は、リクエストされたメモリアクセス動作142を実行に移すために、MMU110による処理のためのメモリアクセスリクエスト140を開始する。メモリアクセスリクエスト140は典型的に、問題のメモリ場所の仮想アドレスを含み、さらに、メモリアクセスを開始した仮想マシンのWorldIDを含むか、またはこれに関連付けられる。さらに、メモリアクセスリクエスト140は、メモリアクセスを開始したアプリケーションまたは機能に関連するASIDも含むか、またはこれに関連付けられる。一実施形態において、x86ベースのアーキテクチャの中に見られる制御レジスタCR3は、所与のプロセッサコアに対する現在のASIDを記憶するために使用され、このために、ASIDは、例えば、制御レジスタCR3の中に記憶されたビットの一部または全体を含むことができる。WorldID、またはWorldIDとASIDの組み合わせは、メモリアクセスリクエスト140に伴って供給される仮想アドレスに関連する特定の仮想アドレス空間を識別する。したがって、ハードウェアコントローラ138は、WorldIDおよびASIDを使用して、仮想アドレスを対応する物理アドレスに変換するために使用されることになる、特定の仮想アドレスから物理アドレスへの変換を識別する。ハードウェアコントローラ138は、示されたアドレス変換を実施し、次いで、メモリサブシステム104が示されたメモリ場所にアクセスするよう命令するために、メモリアクセス動作142の一部として、得られた物理アドレスをメモリサブシステム104へ送信する。記載のように、ページテーブル130の各々は、仮想アドレス空間の仮想アドレスと対応する物理アドレスとの間の特定のマッピングを提供するために、特定の仮想アドレス空間に対応する。ページテーブル130に直接アクセスする際に比較的高いレイテンシが存在するため、ハードウェアコントローラ138は、最近使用された仮想から物理へのマッピングをキャッシュするためにTLB132を利用する。メモリアクセスリクエスト140のために仮想アドレスから物理アドレスへの変換を実施する際、ハードウェアコントローラ138は、最初に、TLB132を確認して、TLB132がメモリアクセスリクエスト140のために必要な特定の仮想から物理へのマッピングを既に含んでいるか判定する。一実施形態において、ハードウェアコントローラ138は、TLBタグ付けおよびTLBヒットロジックを使用して、対応する仮想アドレス空間のマッピング情報がTLB132のエントリ内に存在するか識別する。記載のように、メモリアクセスリクエスト140に伴って送信されたWorldIDおよびASIDは、対応する物理アドレスに変換されることになる、仮想アドレスに関連する一意の仮想アドレス空間を識別する。しかしながら、これらの値はしばしば、何十ものビットの長さであり、このために、TLB132のタグ配列に対する検索キーとして直接使用された場合、相当に複雑なTLBヒットロジックが必要になる。したがって、少なくとも一実施形態において、ハードウェアコントローラ138は、検索キーテーブル134および136を使用して、メモリアクセスリクエスト140に伴って送信されたWorldIDおよびASIDを、より小さい検索キーに変換し、これは、その後、TLB132のTLBヒットロジックによって使用される場合がある。一例示的実施形態において、検索キーテーブル134および136の使用を通して、WorldIDは、16ビットの値から2ビットのWorldID検索キーに変換することができ、ASIDは、36ビットの値から3ビットのASID検索キーに変換することができる。WorldIDおよびASIDを、それぞれ対応するWorldID検索キーおよびASID検索キーに初めに変換した後、ハードウェアコントローラ138は、得られたWorldIDおよびASIDの検索キーをバッファし、ハイパーバイザ112とゲストOSとの間の実行の切り替え時等、またはあるアプリケーションの実行から別のアプリケーションの実行への切り替え時に制御レジスタCR3の中のASIDを更新することによって、ゲストOSがアプリケーションレベルのアドレス空間を切り替える時等、コンテキスト変化に起因して、WorldIDまたはASIDのうちの1つ、あるいは両方に対する更新があるまで、これらのバッファされた検索キーをTLBルックアップのために引き続き使用する。このように、WorldIDおよびASIDをWorldIDおよびASIDの検索キーに変換するためにハードウェアコントローラ138によって利用されるマッピングロジックは、WorldIDまたはASIDに対する更新につき1回しか実行する必要がない。図2は、検索キーテーブル134および136の例示的実装を示す。検索キーテーブル134本明細書ではWorldIDテーブル134と称されるは、2X件のエントリを含む完全連想キャッシュまたは他のデータ構造を備え、Xは、得られたWorldID検索キー201の中のビット数である。図示された例において、WorldIDテーブル134は、422エントリを有し、それによって、2ビットのWorldID検索キー201の生成をもたらす。WorldIDテーブル134の各エントリは、対応する経路例えば、図2の例の0~3に関連し、各エントリは、対応するWorldIDを記憶するように構成されたWorldIDフィールド202を含む。各エントリはさらに、対応するエントリが有効なエントリであるかどうかを示す有効ビットを記憶するための有効フィールド203等の様々なステータスフィールド、ならびに最も長く使用されていないLRUまたは最も最近使用されたMRU情報を記憶するためのフィールド等を含むことができる。検索キーテーブル136本明細書ではASIDテーブル136と称されるは、X個のインデックスを含む群連想キャッシュまたは他のデータ構造を備え、各インデックスがWorldIDテーブル134の対応する経路に関連し、各インデックスは1組の2Y件のエントリを備え、Yは、それによって得られるASID検索キー211の中のビット数である。図示された例において、ASIDテーブル136は、823エントリを有し、このため、3ビットのASID検索キー211の生成をもたらす。ASIDテーブル136の各エントリは、対応する経路例えば、図2の例の0~7に関連し、各エントリは、対応するASIDを記憶するように構成されたASIDフィールド204を含む。各エントリはさらに、対応するエントリが有効なエントリであるかどうかを示す有効ビットを記憶するための有効フィールド205等の様々なステータスフィールド、ならびにLRUまたはMRU情報を記憶するためのフィールド等を含むことができる。一実施形態において、WorldID検索キー201およびASID検索キー211の判定は、2段階のプロセスを含む。WorldIDに対応するWorldID検索キー201を判定するために、ハードウェアコントローラ138は、WorldIDテーブル134を検索して、WorldIDを記憶する、一致するエントリが存在するかどうかを判定する。そのようなエントリがWorldIDテーブル134の中で検出された場合、WorldID検索キー201は、検出されたエントリの経路に設定される。例として、WorldIDテーブル134の第3のエントリ経路=2が一致するWorldIDを記憶する場合、WorldID検索キー201は、第3のエントリ、すなわち、10b2の経路に設定されることになる。WorldID検索キー201を識別した後、ハードウェアコントローラ138は、WorldIDテーブル134の中の一致するエントリの経路を使用することによって、ASIDに対応するASID検索キー211を判定して、検索されることになるASIDテーブル136の対応するインデックスを識別する。前述の例を使用すると、WorldIDテーブル134の一致するエントリの経路は、インデックス=2であり、このため、ハードウェアコントローラ138は、ASIDテーブル136のインデックス0~3のうちのインデックス2を検索して、インデックス2の中のエントリ0~7のうちのいずれかがメモリアクセスリクエストに関連するASIDを記憶するかどうかを判定することになる。そのようなエントリがASIDテーブル136の示されたインデックスの中で検出された場合、ASID検索キー211は、エントリの経路に設定される。例として、ASIDテーブル136の第4のエントリ経路=3が一致するASIDを記憶する場合、ASID検索キー211は、011b3に設定されることになる。図3は、本開示の少なくとも一実施形態による、図2のWorldIDテーブル134およびASIDテーブル136を使用して、WorldIDおよびASIDの検索キーを判定するための、ハードウェアコントローラ138の動作の例示的方法300を示す。方法300は、ブロック302で、アドレス空間コンテキストに対する更新に応答して開始する。この更新は、現在のASID、現在のWorldID、または両方の中の変化を含むことができる。例として、コンテキスト切り替えがハイパーバイザ112とゲストOSとの間、またはゲストOSの間で発生すると、WorldIDおよびASIDは、新しいアドレス空間を反映するように更新される。同様に、現在実行されているゲストOSがアドレス空間を切り替えると例えば、アプリケーション間の切り替え時等、ASIDが更新される。x86ベースのプロセッサアーキテクチャにおいて、制御レジスタCR3はしばしば、現在のアドレス空間に関連する特定のページテーブルをポイントする、ページディレクトリベースレジスタPDBRとして働き、このため、制御レジスタCR3の中に記憶されたビットのいくらかの部分または全体は、ASIDとして使用することができる。したがって、使用中の現在のASIDに対する更新は、制御レジスタCR3の中に記憶された値に対する更新として検出することができる。ブロック304で、ハードウェアコントローラ138は、ヒットロジックを採用して、WorldIDテーブル134で、WorldIDを記憶しているエントリを検索する。同じWorldIDを記憶するエントリが全く検出されない場合、ブロック306で、ハードウェアコントローラ138は、メモリアクセスリクエストに関連するWorldIDに対して、WorldIDテーブル134の中のエントリを割り当てる。エントリの割り当ては、未使用のエントリを割り当てること、または現在使用中のエントリを排除することを含むことができる。排除されるエントリは、例えば、最も長く使用されていないエントリとして選択することができる。WorldIDテーブル134の中の割り当てられたエントリは、次に、ブロック302で受信されたWorldIDで投入され、適切なステータスフラグが設定される。ブロック308で、WorldID検索キーは、ブロック306で割り当てられた、WorldIDテーブル134の中のエントリの経路に設定される。ブロック310で、WorldIDテーブル134の割り当てられたエントリに対応するASIDテーブル136のインデックスのエントリがフラッシュされ、インデックスのエントリが選択され、ブロック302で受信されたASIDで投入される。ブロック304に戻ると、WorldIDテーブル134の一致するエントリが検出された場合、ブロック312で、ハードウェアコントローラ138は、WorldIDキー201を一致するエントリの経路に設定する。ブロック314で、ハードウェアコントローラ138は、WorldIDテーブル134の一致するエントリに関連するASIDテーブル136のインデックスを選択し、ブロック316で、ハードウェアコントローラ138は、ASIDテーブル136の選択されたインデックスの1組のエントリで、ブロック302で受信されたASIDを記憶する、一致するエントリを検索する。選択された経路の一致するエントリが全く検出されない場合、ブロック318で、ハードウェアコントローラ138は、未使用のエントリを選択すること、または使用中のエントリを排除することのいずれかによって、ASIDテーブル136の選択されたインデックスのエントリを割り当てて、ASIDを記憶する。ブロック320で、ハードウェアコントローラ138は、ASID検索キーを、ブロック318で割り当てられたエントリの経路に設定する。ブロック322で、ハードウェアコントローラ138は、ブロック302~322のプロセスを経て判定されたWorldIDおよびASID検索キーに一致する、TLB132のあらゆるエントリをフラッシュする。ブロック316に戻ると、選択された経路の一致するエントリが検出された場合、ブロック324で、ハードウェアコントローラ138は、ASIDキー211を、一致するエントリの経路に設定する。最新のWorldIDおよびASID検索キーを設定後、ブロック326で、ハードウェアコントローラ138は、WorldIDおよびASIDの検索キーを利用して、ページウォークを通してページ変換情報でTLB132の対応するエントリを投入し、次のアドレス空間のコンテキスト変化まで、仮想メモリアドレスから物理メモリアドレス変換のためのTLBルックアップを実施することができ、その時点で、更新されたWorldID/ASIDに対して、方法300の次の反復が開始される。図4は、本開示の少なくとも一実施形態による、WorldID検索キー201およびASID検索キー211を使用する、TLBルックアップの例示的実装を示す。図示された例において、TLB132は、複数のエントリを含むテーブルまたは他のデータ構造を備え、各エントリは、対応する仮想ページ番号を記憶するように構成された仮想ページ番号VPNフィールド401と、物理ページ番号PPNフィールド402とを有する。各エントリはさらに、対応するWorldID検索キーを記憶するように構成されたWorldIDタグフィールド403、対応するASID検索キーを記憶するように構成されたASIDタグフィールド404、および設定されると、関連するマッピングが対応する仮想マシンに対してグローバルすなわち、仮想マシン内の全てのアドレス空間に対してグローバルであることを示す、グローバルビットを記憶するように構成されたグローバルアドレスフィールド405に関連する。TLBルックアップを実施するために、ハードウェアコントローラ138は、TLBヒットロジックを採用して、TLB132のエントリで、処理されているメモリアクセスリクエストの仮想メモリアドレスのWorldID検索キー201およびVPNに一致し、かつ、ASID検索キーに一致するか、またはグローバルビット設定を有するかのいずれかである、エントリを検索する。TLB132の中のエントリがこれらの検索条件の各々を満たすすなわち、WorldID検索キーに一致すること、ANDVPNに一致すること、およびASID検索キーと一致すること、ORグローバルビットが設定されること場合、ハードウェアコントローラ138は、エントリのPPNフィールド402の中に記憶された物理ページ番号PPN_Xを使用して、メモリアクセスリクエストの仮想アドレスを対応する物理アドレスに変換する。この変換は、一般的に、物理アドレスを生成するように、仮想アドレスのいくつかの部分または全体から判定されたページオフセットに物理ページ番号を連結することによって、達成される。本開示の別の態様は、実行時に上記の仮想アドレスから物理アドレスへの変換を実装するためのハードウェアの設計を促進するように適合される、1組の命令を表すデータを記憶するコンピュータ可読媒体を含む。このように、上記の技法を実装するデバイスは、例えば、ソフトウェア例えば、コンピュータ可読プログラムコードを記憶するように構成された、コンピュータ使用可能例えば、可読媒体の中に配置されたソフトウェアにおいて具現化される場合がある。プログラムコードは、本明細書に開示されるシステムおよび方法の加工を含む、本開示の実施形態を実施可能にさせる。例えば、これは、汎用プログラム言語CまたはC等、ベリログ、ベリログA、HDL、VHDL、AlteraHDLAHDL等を含むハードウェア記述言語HDL等、または他の利用可能なプログラミングおよびまたはスキームキャプチャツール回路キャプチャツール等の使用を通して実現することができる。プログラムコードは、半導体、磁気ディスク、光ディスクCD-ROM、DVD-ROM等を含む任意の周知のコンピュータ使用可能媒体の中に配置することができる。上記のシステムおよび技法によって実現される機能および/または提供される構造は、プログラムコードの中に具現化されるコアGPUコア等の中に表現することができ、集積回路の製造の一部としてハードウェアに変形されてもよいことが理解される。本開示の他の実施形態、使用、および利点が、本明細書の検討および本明細書に開示される開示の実践から、当業者には明らかであろう。本明細書および図面は例示としてのみ考慮されるべきであり、したがって、本開示の範囲は、以下の請求項およびその均等物によってのみ制限されることが意図される。