(57)【特許請求の範囲】
【請求項１】
データ処理のための装置であって、
データ処理動作を行うためにデータ処理命令を実行する処理回路であって、前記データ処理動作は、メモリシステムにアクセスすることを含み、当該処理回路は、複数のコンテキストにおいて前記データ処理命令を実行することが可能である、処理回路と、
前記処理回路と前記メモリシステムとの間にインターフェースを提供するメモリシステム相互作用回路と、
を備え、
前記メモリシステム相互作用回路は、前記処理回路が前記複数のコンテキストのうちの現在のコンテキストにおいてバリア命令を実行することに応答して、アクセス順序制約を強制することが可能であり、
前記メモリシステム相互作用回路は、前記アクセス順序制約の強制を、識別されたコンテキストにおいて動作するときに前記処理回路によって開始されたアクセスに制限することが可能であり、さらに
前記メモリシステム相互作用回路は、保留中のアクセスをバッファ処理するための格納バッファを備え、前記格納バッファは、各保留中のアクセスを、その保留中のアクセスが発行された前記コンテキストを示す識別子でタグ付けすることが可能である装置。
【請求項２】
前記識別されたコンテキストは、前記現在のコンテキストである、請求項１に記載の装置。
【請求項３】
前記識別されたコンテキストは、前記バリア命令において特定される、請求項１に記載の装置。
【請求項４】
前記装置は、複数の仮想マシンのうちの現在の仮想マシンが動作する仮想化された動作環境を提供することが可能であり、前記処理回路は、前記現在の仮想マシンとの相互作用によって、前記データ処理命令を実行することが可能であり、前記現在のコンテキストは、前記現在の仮想マシンに対応する、請求項１〜３のいずれか一項に記載の装置。
【請求項５】
前記装置は、仮想マシン識別子を格納するための仮想マシン識別子格納域をさらに備え、前記装置は、前記現在の仮想マシンを示すために、前記仮想マシン識別子を更新することが可能である、請求項４に記載の装置。
【請求項６】
前記格納バッファは、保留中のアクセスのうち、当該保留中のアクセスにタグ付けされた前記識別子が示すコンテキストが、前記識別されたコンテキストであるような、前記保留中のアクセスに、前記アクセス順序制約の強制を制限することが可能である、請求項１に記載の装置。
【請求項７】
前記メモリシステム相互作用回路は、整合性ユニットをさらに備え、前記格納バッファは、前記整合性ユニットを介して、前記メモリシステムと相互作用することが可能である、請求項６に記載の装置。
【請求項８】
前記格納バッファは、複数の格納位置を有するコンテキスト追跡格納域を備え、前記格納バッファは、前記アクセス順序制約が前記現在のコンテキストに対して最後に強制されて以来、前記現在のコンテキストに基づいてアクセスを開始した場合、前記現在のコンテキストに対して、前記複数の格納位置のうちの１つにエントリを格納することが可能である、請求項１〜７のいずれか一項に記載の装置。
【請求項９】
前記格納バッファは、選択されたエントリに対応する前記アクセス順序制約が強制されているときに、前記コンテキスト追跡格納域内の選択されたエントリを消去することが可能である、請求項８に記載の装置。
【請求項１０】
前記コンテキスト追跡格納域内の前記複数の格納位置のうちの全てが占有され、かつ、前記格納バッファが前記現在のコンテキストに対して占有されたエントリを有しない場合、前記格納バッファは、対応する犠牲になるエントリを有する、前記現在のコンテキスト以外の犠牲になるコンテキストによって開始された保留中のアクセスに対して、暗黙的なアクセス順序制約を強制し、前記犠牲になるコンテキストに対して前記犠牲になるエントリを消去することが可能であり、前記暗黙的なアクセス順序制約は、対応するバリア命令を実行することを前記処理回路に要求しない、請求項８または請求項９に記載の装置。
【請求項１１】
前記格納バッファは、前記アクセス順序制約がそのコンテキストに対して最後に強制されて以来開始された前記アクセスが、少なくとも１つの種類のアクセスを含むかを示す、前記コンテキスト追跡格納域内の各エントリに関連付けられる少なくとも１つの指標を格納することが可能である、請求項８〜１０のいずれか一項に記載の装置。
【請求項１２】
前記装置は、保留中のアクセスの選択された種類にアクセス順序制約の実施を制限することが可能であり、当該制限の可能な保留中のアクセスの種類は、前記現在のコンテキストに対する前記アクセス順序制約が最後に実行されてから、前記現在のコンテキストに基づいてアクセス命令の対応する種類が実行されているとき、当該対応する種類のアクセス命令の前記現在のコンテキストに基づく実行によって開始された保留中のアクセスの種類である、請求項１〜１１のいずれか一項に記載の装置。
【請求項１３】
保留中のアクセスの前記選択された種類は、格納動作である、請求項１２に記載の装置。
【請求項１４】
前記メモリシステム相互作用回路は、前記格納動作が、選択されたメモリ領域に対するものであるときに、前記アクセス順序制約の強制を制限することが可能である、請求項１３に記載の装置。
【請求項１５】
保留中のアクセスの前記選択された種類は、整合性動作である、請求項１２に記載の装置。
【請求項１６】
前記識別されたコンテキストは、前記処理回路にアクセス可能な格納域内で特定される、請求項１に記載の装置。
【請求項１７】
データ処理方法であって、
データ処理動作を行うためにデータ処理命令を実行するステップであって、前記データ処理動作は、メモリシステムにアクセスすることを含み、前記データ処理命令は、複数のコンテキストのうちの現在のコンテキストにおいて実行される、ステップと、
前記複数のコンテキストのうちの前記現在のコンテキストにおけるバリア命令の実行に応答して、アクセス順序制約を強制するステップと、
前記アクセス順序制約の強制を、識別されたコンテキストにおいてデータ処理命令を実行するときに開始されたアクセスに制限するステップと、
を含み、
保留中のアクセスをバッファ処理するための格納バッファによって、各保留中のアクセスを、その保留中のアクセスが発行された前記コンテキストを示す識別子でタグ付けすることが可能である、方法。
【請求項１８】
データ処理のための装置であって、
データ処理動作を行うためにデータ処理命令を実行する手段であって、前記データ処理動作は、メモリシステムにアクセスすることを含み、前記データ処理命令は、複数のコンテキストのうちの現在のコンテキストにおいて実行される、手段と、
データ処理命令を実行する前記手段と前記メモリシステムとの間にインターフェースを提供するための手段と、
を含み、
インターフェースを提供するための前記手段は、データ処理命令を実行する前記手段が前記複数のコンテキストのうちの前記現在のコンテキストにおいてバリア命令を実行することに応答して、アクセス順序制約を強制することが可能であり、
インターフェースを提供するための前記手段は、前記アクセス順序制約の強制を、識別されたコンテキストにおいて動作するときにデータ処理命令を実行する前記手段によって開始されたアクセスに制限することが可能であり、さらに
インターフェースを提供するための前記手段は、保留中のアクセスをバッファ処理するための格納手段を備え、前記格納手段は、各保留中のアクセスを、その保留中のアクセスが発行された前記コンテキストを示す識別子でタグ付けすることが可能である装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ処理に関する。より具体的には、データ処理装置におけるバリア命令の使用に関する。
【背景技術】
【０００２】
データ処理動作を行うか、または代行させるためにデータ処理命令を実行するデータ処理装置は、バリア命令に応答するように手配されることが既知である。バリア命令は、データ処理装置に、特定のアクセス順序の制約が強制されることを確実にさせ、換言すると、バリア命令は、バリア命令に続く一連のデータ処理命令においてデータ処理装置が命令を実行し得る前に、データ処理装置が実行する一連のデータ処理命令においてバリア命令に先行する命令が完了すること、すなわち、アクセスされるメモリシステム内で実施されることを保証され得ることを確実にする。これは、例えば、メモリシステムの内容が、バリア命令に遭遇したときに、最新であり、データ処理装置の現在の処理の状態に関して整合性があることを確実にするために有用であり得る。
【０００３】
本開示は、データ処理装置が、そのようなバリア命令の遭遇にどのように応答するかの改善に関する。
【発明の概要】
【課題を解決するための手段】
【０００４】
第１の態様から見ると、データ処理のための装置であって、データ処理動作を行うためにデータ処理命令を実行する処理回路であって、データ処理動作は、メモリシステムにアクセスすることを含み、処理回路は、複数のコンテキストにおいてデータ処理命令を実行することが可能である、処理回路と、処理回路とメモリシステムとの間にインターフェースを提供するメモリシステム相互作用回路と、を備え、メモリシステム相互作用回路は、処理回路が複数のコンテキストのうちの現在のコンテキストにおいてバリア命令を実行することに応答して、アクセス順序制約を強制することが可能であり、メモリシステム相互作用回路は、アクセス順序制約の強制を、識別されたコンテキストにおいて動作するときに処理回路によって開始されたアクセスに制限することが可能である装置が提供される。
【０００５】
第２の態様から見ると、データ処理方法であって、データ処理動作を行うためにデータ処理命令を実行するステップであって、データ処理動作は、メモリシステムにアクセスすることを含み、データ処理命令は、複数のコンテキストのうちの現在のコンテキストにおいて実行される、ステップと、複数のコンテキストのうちの現在のコンテキストにおけるバリア命令の実行に応答して、アクセス順序制約を強制するステップと、アクセス順序制約の強制を、識別されたコンテキストにおいてデータ処理命令を実行するときに開始されたアクセスに制限するステップと、を含む方法が提供される。
【０００６】
第３の態様から見ると、データ処理のための装置であって、データ処理動作を行うためにデータ処理命令を実行する手段であって、データ処理動作は、メモリシステムにアクセスすることを含み、データ処理命令は、複数のコンテキストのうちの現在のコンテキストにおいて実行される、手段と、処理回路とメモリシステムとの間にインターフェースを提供するための手段と、を含み、インターフェースを提供するための手段は、データ処理命令を実行するための手段が複数のコンテキストのうちの現在のコンテキストにおいてバリア命令を実行することに応答して、アクセス順序制約を強制することが可能であり、データ処理命令を実行するための手段は、アクセス順序制約の強制を、識別されたコンテキストにおいて動作するときに処理回路によって開始されたアクセスに制限することが可能である装置が提供される。
【０００７】
本発明は、添付の図面に例示されるようなその実施形態を参照して、例としてのみ、さらに説明される。
【図面の簡単な説明】
【０００８】
【図１】一実施形態における、２つのデータ処理装置及びメモリシステムを備えるデータ処理システムを概略的に例示する。
【図２】一実施形態における、図１に示されるもの等の１つ以上のデータ処理装置上で実行される、仮想化された動作環境の構造を概略的に例示する。
【図３Ａ】一実施形態における、図１のデータ処理システムのコンポーネントのいくつかを、より詳細に概略的に例示する。
【図３Ｂ】一実施形態における、バリア命令を例示する。
【図４】一実施形態における、図３Ａの各データ処理装置内の各格納バッファの構成をより詳細に概略的に例示する。
【図５】一実施形態における、図４に例示されるもの等の格納バッファによって行われる一連のステップを示す。
【図６Ａ】一実施形態における、処理回路によって実行され得る例示的な一連の命令を示す。
【図６Ｂ】一実施形態における、処理回路によって実行され得る例示的な一連の命令を示す。
【発明を実施するための形態】
【０００９】
本発明の技術は、データ処理装置の処理回路が、１つを超えるコンテキストにおいてデータ処理命令を実行することが可能な（すなわち、それが実行することを可能にする構成を有する）場合、処理回路がデータ処理命令を実行するコンテキストに応じて、データ処理装置が、バリア命令に応答する様式を変更することが有利であると認識している。本明細書において、「コンテキスト」とは、データ処理装置がそこで動作することができ、それに従ってデータ処理装置のコンポーネントに、データ処理装置自体のコンポーネントだけでなく、データ処理装置が存在する、例えば、データ処理装置が接続されるメモリシステムをさらに含むデータ処理システムの全体の、見かけ上完全で自己整合性のある概観が提供される、動作環境として理解されるべきである。「見かけ上」という用語は、本明細書においては、例えば、データ処理装置が相互作用するメモリシステムが、実際に、データ処理装置の処理回路が特定のコンテキストにおいて動作しているときに見ることができるよりも広範囲のアドレス位置を含有し得、しかし、処理回路は、その特定のコンテキストにおいて動作しているときに、メモリシステム内に他のアクセス不可なメモリ位置が存在していることを認識していないことを示すために使用される。バリア命令は、例えばメモリバリア命令であり得るか、または、例えばメモリアクセスだけでなく整合性動作等の他の関連している動作も同期化する同期化バリアであり得る。例えば、分岐予測器またはＴＬＢ維持動作により、ＤＶＭメッセージが得られ、同期化バリアは、これらのアクセスも同期化する。
【００１０】
本発明の技術によると、データ処理装置の処理回路がバリア命令に遭遇すると、データ処理装置は、例えば現在のコンテキストであり得る識別されたコンテキストにおいて動作するときに処理回路によって開始されたアクセス、すなわち、処理回路が現在動作していて、バリア命令に遭遇したコンテキストと同一のコンテキストにおいて以前に開始されたアクセスに対してのみ、対応するアクセス順序制約（access ordering constraint）の強制を制限にすることによって、応答し得る。言い換えると、アクセス順序制約の強制は、識別されたコンテキストにおいて動作しているときに処理回路によって開始されるアクセスに制限され得る。アクセスは、種々の形をとり得、例えば、格納または読み込み等のメモリアクセスであり得、例えば、整合性動作またはキャッシュ（データまたは命令）維持動作でもあり得る。
【００１１】
これは、処理回路が、それらの複数のコンテキストのうちの所与のコンテキストにおいてデータ処理命令を実行しているときに、データ処理装置内の複数の可能なコンテキストの存在が、データ処理装置の動作に対して有し得る影響をさらに低減するという利点を有する。例えば、本技術が特に有益であり得る１つの状況は、データ処理装置が、そのデータ処理命令を実行し、かつほとんど遅延なく外部信号に応答すること（「リアルタイムコンテキスト」）が必要とされ、そのデータ処理命令の実行の完了において、かつ外部信号への応答において、いくらかの遅延が許容可能である別のコンテキストにおいて動作する（「非リアルタイムコンテキスト」）ように手配されるときに、データ処理装置内に提供される１つのコンテキストが、処理回路の動作のために使用される場合である。処理回路が所与のコンテキストにおいてバリア命令に遭遇するときに行われるアクセス順序制約が、その特定のコンテキストにおいて動作されるときに処理回路によって開始されたアクセスに対して強制されるように、データ処理装置を手配することによって、遅延に敏感であるコンテキストのタイミング制約（リアルタイムコンテキスト）は、より良好に保護され、このコンテキストにおいて動作するときの処理回路の動作は、そのような厳格なタイミング制約を有さず、したがって、例えば応答の比較的長いレイテンシを有することが既知である外部メモリへのアクセス等の、「リアルタイム」コンテキストに対して許容可能であるよりも大きな遅延を潜在的に伴い得るアクセスを伴い得る異なるコンテキストにおいて動作するときに処理回路によって開始されたアクセスの完了を待つ（アクセス順序制約を遵守するために）ことによって減速されない。
【００１２】
一実施形態において、識別されたコンテキストは、現在のコンテキストである。現在のコンテキストは、種々の方法でアクセス順序制約を強制するコンポーネントに通信され得る。
【００１３】
一実施形態において、識別されたコンテキストは、バリア命令において特定される。これにより、プログラマ（及び／またはハイパーバイザ）は、選択されたコンテキストに対してアクセス順序制約をいつでも柔軟に強制することができる。
【００１４】
一実施形態において、識別されたコンテキストは、処理回路にとってアクセス可能な格納域において特定される。例えば、特定されたものの指標は、（他の何らかの適した格納域も使用され得るが）レジスタに格納され得る。
【００１５】
一実施形態において、装置は、複数の仮想マシンのうちの現在の仮想マシンであって、処理回路がそれとの相互作用によってデータ処理命令を実行することが可能であり、現在のコンテキストがそれに対応する、現在の仮想マシンが動作する仮想化された動作環境を提供することが可能である。したがって、仮想化された動作環境は、データ処理装置の処理回路が、１つを超えるコンテキストにおいて動作（すなわち、データ処理命令を実行）し得る１つの様式を提供する。所与の仮想マシン（典型的には、特定のゲストオペレーティングシステム及びそのゲストオペレーティングシステム上で実行されるアプリケーションのセットを含む）は、その仮想マシンの現在の動作が、データ処理装置に対する動作の現在のコンテキストであるときに、データ処理装置のハードウェア（すなわち、特に、現在のコンテキストにおいて、処理回路及びメモリシステム相互作用回路）と相互作用する。本発明の技術は、したがって、仮想マシン（特に、低遅延タイミング制約の仮想マシン）のそれぞれのタイミング制約に対する保護を提供する。
【００１６】
いくつかの実施形態において、装置は、仮想マシン識別子を格納するための仮想マシン識別子格納域をさらに備え、装置は、現在の仮想マシンを示す、仮想マシン識別子を更新することが可能である。仮想マシン識別子格納域は、例えば、識別子格納域の他の何らかの適した形によっても可能であるが、データ処理装置の処理回路内のレジスタによって提供されることができ、したがって、装置のコンポーネントに対し容易に使用可能であり、信頼性のある、現在の仮想マシンを判定するためのリファレンスをデータ処理装置に提供する。
【００１７】
いくつかの実施形態において、メモリシステム相互作用回路は、保留中のアクセスをバッファ処理する格納バッファを備え、格納バッファは、その保留中のアクセスが発行されたコンテキストを示す識別子で、各保留中のアクセスをタグ付けすることが可能である。保留中のアクセスをバッファ処理する格納バッファの提供により、処理回路が他のデータ処理命令の実行を継続する一方で、既存の回路が、アクセス（典型的には、それらが完了する前に少なくとも小さな遅延を有し得る）の執行（administration）を代行させることができるようになる。格納バッファ内にバッファ処理される各保留中のアクセスのタグ付けは、その保留中のアクセスが発行されたコンテキストを示す。その名称にかかわらず、格納バッファは、「格納」アクセスだけでなく、例えば、整合性動作等の他のアクセスも取り扱い得ることに留意するべきである。
【００１８】
これにより、データ処理回路が動作することができるコンテキストのそれぞれに対して、データ処理回路によって開始される保留中のアクセスを、格納バッファが区別することができるようになる。
【００１９】
いくつかの実施形態において、格納バッファは、現在のコンテキストと一致するその保留中のアクセスが発行されたコンテキストを示す識別子でタグ付けされる保留中のアクセスに、アクセス順序制約の強制を制限することが可能である。これにより、（処理回路がバリア命令を実行し）アクセス順序制約が強制される際に、格納バッファは、現在のコンテキストにおいて動作しているときに処理回路によって開始された（したがって、アクセス順序制約が行われるべき）アクセスと異なるコンテキストにおいて動作しているときに処理回路によって開始された（したがって、アクセス順序制約が行われることが望ましくないであろう）アクセスとを、判定することができるようになる。
【００２０】
いくつかの実施形態において、メモリシステム相互作用回路は、整合性ユニットをさらに備え、格納バッファは、整合性ユニットを介して、メモリシステムと相互作用することが可能である。整合性ユニットを介したメモリシステムとの相互作用により、メモリシステムにアクセスするデータ処理装置と、同一のメモリシステムにもアクセスしている他のデータ処理装置との間、及びそれぞれのメモリ階層の格納デバイス間の整合性が可能になり、格納バッファが整合性ユニットを介してメモリシステムと相互作用する場合、（コンテキストに応じた）選択的なアクセス順序制約の強制の実施は、格納バッファが整合性ユニットに送信するメッセージの選択的なフィルタリングによって提供され得る。整合性ユニットは、例えば、捜索制御ユニット（snoop control unit）であり得る。
【００２１】
いくつかの実施形態において、格納バッファは、複数の格納位置を有するコンテキスト追跡格納域を備え、格納バッファは、アクセス順序制約が現在のコンテキストに対して最後に強制されて以来、現在のコンテキストがアクセスを開始した場合、現在のコンテキストに対して、複数の格納位置のうちの１つにエントリ（entry）を格納することが可能である。このようにして、このコンテキスト追跡格納域の提供により、格納バッファは、現在のコンテキストに対してそもそもアクセス順序制約が強制される必要があるかどうかを容易に判定できるようになる。
【００２２】
いくつかの実施形態において、格納バッファは、選択されたエントリに対応するアクセス順序制約が強制されたときに、コンテキスト追跡格納域内の選択されたエントリを消去することが可能である。したがって、一旦、所予のコンテキストに対してアクセス順序制約が強制されると、その時点でコンテキスト追跡格納域内の対応するエントリを消去することにより、もしそのコンテキストにおいてさらなるバリア命令が実行されるときは、格納バッファは確実に、アクセス順序制約が、以前のバリア命令によって生じる行為に影響されるそれらの以前のアクセスに関して実行される必要がないことを、容易に認識することができる。
【００２３】
いくつかの実施形態において、コンテキスト追跡格納域内の複数の格納位置の全てが占有され、格納バッファが、現在のコンテキストに対して占有されたエントリを有しない場合、格納バッファは、対応する犠牲になるエントリを有する、現在のコンテキストではない犠牲になるコンテキストによって開始される保留中のアクセスに対して、対応するバリア命令を実行することを処理回路に要求しない暗黙的なアクセス順序制約を強制し、選択されたコンテキストに対して犠牲になるエントリを消去することができる。格納バッファは、処理回路がデータ処理命令を実行し得る全ての可能なコンテキストに十分な格納位置を有するコンテキスト追跡格納域が提供され得る一方で、データ処理装置によってサポートされるコンテキストの数が、コンテキスト追跡格納域内に提供されることが望ましい格納位置の数を超える場合があり得る。言い換えると、格納バッファのサイズを可能な限り小さく保つために、コンテキスト追跡格納域内の格納位置の数を、比較的小さい数に制限することが所望され得る。この状況では、格納バッファは、現在のコンテキストについて占有されたエントリをもたず、現在のコンテキストについて直ちに使用できる使用可能なエントリをもたないかも知れないことが認識される。その状況において、現在のコンテキストのためにエントリが必要とされると、格納バッファは、暗黙的なアクセス順序制約（これは、バリア命令の実行により処理回路によって命令されるのではなく、そのコンテキスト追跡格納域内のエントリを解放するために、格納バッファ自体によって開始されるという意味で「暗黙的」）を強制し得る。現在のコンテキスト以外の１つ以上の犠牲になるコンテキストが、コンテキスト追跡格納域内の１つ以上のエントリを解放するために、そのような暗黙的なアクセス順序制約を受けるように格納バッファによって選択される。
【００２４】
いくつかの実施形態において、格納バッファは、アクセス順序制約がそのコンテキストに対して最後に強制されて以来開始されたアクセスが、少なくとも１つの種類のアクセスを含むかどうかを示すコンテキスト追跡格納域内の各エントリに関連付けられる少なくとも１つの指標を格納することが可能である。これにより、格納バッファは、所予のコンテキストにおいて処理回路によって開始され得、かつアクセス順序制約の強制に関して様々な要件を有し得る、様々な種類のアクセスを区別することが可能になる。
【００２５】
いくつかの実施形態において、装置は、アクセス順序制約の強制を、現在のコンテキストに対するアクセス順序制約が最後に行われて以来、現在のコンテキストがアクセス命令の対応する種類を実行したときに、アクセス命令のその対応する種類の現在のコンテキストによる実行によって開始された、保留中のアクセスの選択された種類に制限することが可能である。言い換えると、装置は、現在のコンテキストに対するアクセス順序制約が最後に行われて以来、現在のコンテキストがアクセス命令の対応する種類を実行した場合にのみ、アクセス命令のその対応する種類の現在のコンテキストによる実行によって開始された、保留中のアクセスの選択された種類に対して、アクセス順序制約を強制し得る。したがって、装置は、このように、処理回路によるアクセス命令の対応する様々な種類の実行によって開始されたアクセスの様々な種類を区別することができ、さらに、アクセスの種類に依存して、アクセス順序制約の強制を行うことができる。これは、アクセスの様々な種類が互いにいくらか独立であり得、アクセス命令の１つの種類に対するアクセス順序制約の強制が、アクセス命令の異なる種類によって開始された保留中のアクセスがアクセス順序制約の強制に関与することを、実際には必要としないかもしれないことが、本発明の技術によって認識されているためである。
【００２６】
いくつかの実施形態において、保留中のアクセスの選択された種類は、格納動作である。データ処理システムにおける格納動作の予想されるレイテンシに応じて、格納動作は、そのような格納アクセスはそれらに関連付けられる著しいレイテンシを有し得るという事実に起因して、現在のコンテキストによって開始された格納動作に対してのみアクセス順序制約を強制することが有益であるような（メモリ）アクセスの一種を代表している。
【００２７】
いくつかの実施形態において、メモリシステム相互作用回路は、格納動作が選択されたメモリ領域に対してであるときに、アクセス順序制約の強制を制限することが可能である。そうして、メモリ相互作用回路は、格納動作が選択されたメモリ領域に対してである場合にのみ、アクセス順序制約を強制し得る。アクセスの選択された種類は、全ての格納動作であり得る一方で、本発明の技術は、関連付けられた高レイテンシを有するメモリシステムの特定のコンポーネントであり得（メモリシステムの他の部分は、許容可能な低いレイテンシを有し得る）、したがって、メモリシステム相互作用回路は、それに関連付けられる選択されたメモリ領域（例えば、メモリアドレスの範囲）によって、メモリのより高いレイテンシ部分へのアクセスを認識し得ることを認識している。これは、メモリシステムの高レイテンシコンポーネントへのアクセスを提供することが知られている、データ処理システム内の特定のポート（または複数のポート）にアクセスする格納の識別によって識別されることもあり得る。
【００２８】
いくつかの実施形態において、保留中のアクセスの選択された種類は、整合性動作である。整合性動作は、例えば、キャッシュ維持動作、変換索引バッファ（ＴＬＢ）維持動作、分岐予測器維持動作等を含み得る。本発明の技術は、そのような整合性動作が、完了の比較的高いレイテンシを伴い得、したがって、本発明の技術が特に有益なアクセスの一種であるということを認識している。
【００２９】
図１は、２つの中央処理ユニット（ＣＰＵ）１２及び１４を備える、一実施形態におけるデータ処理システム１０を例示している。各ＣＰＵは、データ処理システム１０内でデータ処理動作を行うか、または開始するために、一連のデータ処理命令を実行するプロセッサ１６、１８をそれぞれ備え、また、それらのデータ処理動作においてプロセッサ１６、１８によって使用される値が格納されるレジスタの組２０、２２もそれぞれ備える。各ＣＰＵ１２、１４は、当業者が精通している様式で、データ処理システム１０のメモリシステムの残りから取得されるデータ項目の一時コピーを、それらのデータ項目に対するアクセスレイテンシを低減させるために、格納することができる（すなわち、格納することを可能にする構成を有する）、密接に関連付けられたレベル１（Ｌ１）メモリシステム（キャッシュ）を有する。各データ処理装置１２、１４のそれぞれのＬ１メモリ２４、２６は、再び当業者が精通している、キャッシュ及びメモリのこの組の階層構成において、それ自体、システムバス３０を介して外部メモリ３２と相互作用する、レベル２（Ｌ２）メモリ２８と相互作用する。
【００３０】
図２は、図１に示されるデータ処理システム１０の１つの特徴、すなわち、データ処理システム１０のデータ処理装置１２及び１４が、仮想化された動作環境をサポートすることを、概略的に例示している。これらの仮想化された動作環境は、このように提供される仮想化の制御全体を維持するハイパーバイザ３４が、「例外レベル番号２」（ＥＬ２）または「特権レベル２」（ＰＬ２）と称される図に示される最も高い特権レベルで動作する、図２に概略的に示される階層的な様式に見られ得る。さらに、例えばセキュアなモニタが動作する、より高い特権レベル（ＥＬ３）もまた提供され得る。ハイパーバイザは、最も高い非セキュアな特権レベル、及び仮想化を管理する特権レベルで動作する。ハイパーバイザは、いくつかの仮想マシンのうちのどれがデータ処理装置内で現在動作しているかを制御する。例示の明確さのためだけに、図２は、２つの仮想マシン３６及び３８だけを示すが、データ処理装置は、より多くの仮想マシンをサポートするよう構成され得ることが理解されるべきである。各仮想マシンは、オペレーティングシステム（それぞれ、ＯＳ１  ４０及びＯＳ２  ４２）及びそのオペレーティングシステムの制御下で実行される多くのアプリケーション、それぞれ４４、４６及び４８、５０によって図２に表されている。再び、例示の明確さのためだけに、各仮想マシン内に２つのアプリケーションのみが示されているが、実際には、各仮想マシンが実行することが可能なより多くのアプリケーションが存在し得る。アプリケーションは、典型的には、最も低い特権のレベル（ＥＬ０／ＰＬ０）で動作する一方で、ゲストオペレーティングシステム４０及び４２は、典型的には、中位の特権のレベル（ＥＬ１／ＰＬ１）で動作する。こうして、データ処理装置で実行され得る各仮想マシンは、データ処理装置、具体的には、データ処理装置のプロセッサ（処理回路）がそこで動作し得る、別個のコンテキストを表す。仮想マシンは、各仮想マシンに使用可能とされるのに適切な処理リソースに応じて、１つだけのデータ処理装置によってホストされるかもしれず、またはいくつかに分散され得ることに留意されたい。非リアルタイム仮想マシンは、いくつかのデータ処理装置にわたって分散されるよう構成され得る一方で、リアルタイム仮想マシンが提供される場合、１つのデータ処理装置だけに制限される可能性がより高い。
【００３１】
図３Ａは、図１に示されるデータ処理装置１２及び１４の構成及びデータ処理システム１０のいくつかのさらなるコンポーネントをより詳細に概略的に例示している。各データ処理装置１２、１４は、データ処理動作を行うか、または開始するためにデータ処理命令を実行するデータ処理ユニット（実行ユニット／処理回路）５２、５４を備える。データ処理命令／動作が、メモリシステムにアクセスすることを含む場合、各ＤＰＵ５２、５４は、それぞれの読み込み格納ユニット（ＬＳＵ）６０、６２及び格納バッファ（ＳＴＢ）５６、５８との相互作用を介してこれを行う。図２を参照して説明されたように、各データ処理装置１２、１４は、現在のコンテキストにおいて（すなわち、選択された仮想マシンが動作することを可能にするハイパーバイザ３４の制御下で）動作し、それぞれのＤＰＵ５２、５４は、仮想マシン識別子として機能し、かつそれぞれのデータ処理装置で実行される現在の仮想マシンを示す値をレジスタＶＳＣＴＬＲ．ＶＭＩＤ８０、８２内に格納する。各データ処理装置のＬＳＵ及びＳＴＢは、それらに関連付けられた、むしろ様々なアクセスレイテンシを、特に有し得る、メモリシステムの種々の格納コンポーネントと相互作用し得る。例えば、各データ処理装置１２、１４は、それぞれ低アクセスレイテンシを有する密接に連結されたメモリ（ＴＣＭ）６８、７０それぞれへのアクセスが提供される。同様に、データ処理装置１２、１４は、これも低アクセスレイテンシを有する低レイテンシＲＡＭ（ＬＬ  ＲＡＭ）７６へのアクセスを共有する。それにもかかわらず、ＬＬＲＡＭ７６は、何らかの維持動作がそれらに関連付けられたより長いレイテンシを有し得る、ページテーブル７８を格納するためにも使用され得る。この場合には、ＬＬＲＡＭ内のそれらのページテーブルに直接または間接的に関連があるいずれかの整合性動作は、（低レイテンシアクセスである）通常のＬＬＲＡＭ読み込み及び格納と異なるアクセスのクラス（すなわち、高レイテンシ）として扱われるべきであることが、本発明の技術によって認識されているため、標準のポート単位のメモリ順序は、本発明の技術が回避しようとする特定のコンテキストに対する遅延を回避するのに十分ではないであろう。
【００３２】
各データ処理装置１２、１４はまた、Ｌ２メモリシステム２８の一部を形成し、特に、本実施形態においてはＡＲＭ社（英国Cambridge市）によって提供されるようなＡＸＩマスタポートであるバスアクセスポート７４へのアクセスを提供する捜索制御ユニット（ＳＣＵ）７２によってこの例において具体化される整合性ユニットへのアクセスも共有し、ＳＣＵはまた、クラスタにおける全てのコア／処理要素間の整合性も維持する（図１も参照）。このＡＸＩマスタポート７４は、ＡＸＩシステムバス３０を介して外部メモリ３２へのアクセスを提供し、したがって、例えば、ＴＣＭ６０、７８、またはＬＬＲＡＭ７６よりも著しく高い、関連するアクセスレイテンシを有する。各データ処理装置のＳＴＢ５６、５８は、それぞれのローカルバスインターフェースユニット（ＢＩＵ）６４、６６を介して、共有されるＳＣＵ７２及び共有されるＬＬＲＡＭ７６とそれぞれ相互作用する。
【００３３】
図３Ｂは、この命令をデータ処理装置に対するバリア命令として識別するオペコード部分と、このバリア命令が現在のＶＭＩＤ（例えば、ＶＳＣＴＬＲ．ＶＭＩＤレジスタの内容によって示されるような）に適用されるべきか否かを特定し得るか、またはこのバリア命令が適用されるべきＶＭＩＤ値を明示的に特定し得るＶＭＩＤ使用部分と、を含む、例示的なバリア命令を概略的に例示する。バリア命令が適用されるべきＶＭＩＤ値は、バリア命令内にエンコードされるのではなく、レジスタ内に格納され得る（図１の２０及び２２参照）。
【００３４】
図４は、図３Ａに示される格納バッファ５６の構成をより詳細に概略的に例示する。格納バッファ５８は、同様の構成を有することに留意されたい。全ての格納動作、キャッシュ維持動作、ＴＬＢ維持動作等は、Ｌ１メモリシステム内において（ＶＭＩＤレジスタ８０から取得されるか、またはバリア命令内で明示的に特定されるか、もしくはレジスタ等の格納域内での指標としての）現在のＶＭＩＤ値でタグ付けられ、ＳＴＢ５６を通り抜ける。言い換えると、処理回路（ＤＰＵ）５２からリタイアした対応する命令と関連付けられたＶＭＩＤ指標とが、ＳＴＢ５６によって受信される。これらは、格納バッファの制御全体を執行する制御ユニット９０によって最初に受信される。格納バッファ５６は、保留中のアクセスが、メモリシステムの残りに渡される前に、一時的に格納される多くの格納バッファスロット９２をさらに備える。各格納バッファスロットは、対応するリタイアした命令に関連付けられて受信され、この対応する保留中のアクセスをセットアップする、仮想マシン識別子の指標９４でマークされる。格納バッファは、どのＶＭＩＤ（コンテキスト）が（ＳＣＵ７２を介して）高レイテンシのＡＸＩマスタポート７４にアクセスしたか、またはＤ−キャッシュ維持動作（「ＳＣＵ」とラベル付けされている）を行ったか、及び、どのＶＭＩＤが分散された仮想メモリ（ＤＶＭ）メッセージ（「ＤＶＭ同期」とラベル付けされている）を送信したかを追跡するために、格納バッファが使用するコンテキストトラッカ９６をさらに備える。ＤＶＭメッセージは、例えば、Ｉ−キャッシュ維持、分岐予測器維持、及びＴＬＢ維持に関連し得る。ＤＶＭ同期は、事実上、順序制約を強制するＤＶＭメッセージである。本明細書において、コンテキストトラッカは、この格納域に使用可能な比較的な限定された数、図４に例示されているように３つのエントリのみを有し、格納バッファ５６が、データ処理装置１２の比較的小さいコンポーネントとして提供されることを可能にする。制御ユニット９０は、いつ、ＳＣＵ７２を介したＡＸＩマスタポート７４へのアクセスにリタイアした格納命令が関連するかを識別することができるように、高レイテンシのＡＸＩマスタポート９８のメモリアドレス範囲の指標へのアクセスをさらに有し、また、整合性命令１００、すなわち、ＤＶＭメッセージをもたらすそれらの命令のリストへのアクセスも有する。いくつかの「整合性のある」メモリアクセスは、実際にはＡＸＩ−Ｍポートにアクセスし得ず、例えば、（ＡＸＩ−Ｍアドレスの範囲内にある）ある整合性のあるアドレスへの格納は、ＡＸＩ−Ｍポートに一度もアクセスすることなく、ローカルキャッシュアクセス、Ｌ２キャッシュアクセス、または別のコアのキャッシュへの捜索によって十分に満足され得ることに留意されたい。
【００３５】
図４のこの記載された構成によって、バリア命令がリタイアされ、制御ユニット９０によって受信されたときに、格納バッファが、そのバリアの適用を、一致するＶＭＩＤを有する格納バッファスロットに制限し、したがって、バリア命令に応答して、アクセス順序制約の強制を、同一のコンテキストにおいて動作する（すなわち、ＶＭＩＤ値によって示されるのと同一の仮想マシンが実行されている）ときにＤＰＵ５２によって開始された格納バッファスロット内に対応するエントリを有する保留中のアクセスに制限することが可能になる。しかしながら、格納バッファはまた、そのＶＭＩＤに対してのみアクセス順序制約を強制するように、（例えば、図３Ｂを参照して上述されたように）バリア命令内にエンコードされた明示的なＶＭＩＤ特定にも応答できることに留意されたい。加えて、ハイパーバイザは、全ての仮想マシン（ＶＭＩＤ／コンテキスト）に対して順序制約を強制し得る「強い」バリアへのアクセスを有することが留意されるべきである。また、順序制約は、現在保留中のメモリアクセスだけではなく、概して、他の処理要素（コア）に対して見えるようになっているという意味で、完了していないかもしれないあらゆる種類のアクセスに適用することも留意されるべきである。言い換えると、このコアに関する限りは完了している（したがって、保留中ではない）かもしれないが、その効果の全てが他のオブザーバー（例えば、他のコア）に対して見えるようになっているわけではない。バリアは、（ＳＴＢにおいて）依然として保留中であるか否かに関係なく、この順序制約を強制する必要がある。
【００３６】
コンテキストトラッカ９６の構成により、格納バッファは、ＤＶＭ同期化が最後に行われて以来、バリア命令が適用するコンテキスト（すなわち、その関連付けられたＶＭＩＤ指標）がＤＶＭメッセージを送信した場合、バリア命令がリタイアしたときに、メモリシステムの残りにＤＶＭ同期化メッセージを送信することだけができるようになる。これは、ＤＶＭ同期化に関連するコンテキストトラッカ内の指標の維持によって行われ、これは、図５に関してより詳細に説明される。同様に、コンテキストトラッカ９６のこの構成により、格納バッファ５６は、関連しているコンテキスト（ＶＭＩＤ）に対してバリア動作が最後に行われて以来、バリアが適用するコンテキスト（すなわち、その関連付けられたＶＭＩＤ指標）がＳＣＵにＡＸＩマスタ格納またはキャッシュ維持動作を送信した場合、（他の全ての未処理のＡＸＩマスタアクセスをＣＰＵ１２からバリアするために）バリアをＳＣＵ７２に伝達することだけができるようになる。これをサポートするコンテキストトラッカ５６の内容の維持のさらなる詳細は、図５、６Ａ、及び６Ｂを参照して説明される。
【００３７】
図５は、一実施形態における、図４に示される格納バッファ５６によって行われる一連のステップを示す。この例において、格納バッファは、現在のＶＭＩＤ／コンテキスト（すなわち、バリア命令において特定されるＶＭＩＤではない）を使用する。流れは、命令が、リタイアし、格納バッファ５６の制御ユニット９０によって受信される、ステップ１１０において開始すると考えることができる。その後、ステップ１１２において、この命令がバリア命令であるかが判定される。バリア命令でない場合、流れは、関連しているメモリアドレス範囲９８及び整合性命令１００のリストを参照して、制御ユニット９０が、この命令が、（ＳＣＵを介した）ＡＸＩマスタポートへの格納であるか、ＤＶＭ整合性命令であるか、またはデータキャッシュ維持動作であるかを判定する、ステップ１１４へ進む。どれでもない場合、流れは、アクセス命令が、メモリシステムの対象部分に直接伝えられ得るか、または必要な場合、それを扱うことができるまで、複数のＳＴＢバッファスロットのうちの１つのバッファスロット内に保留され得る、ステップ１１６へ進む。このようにバッファスロット９２のうちの１つに格納されるとき、関連付けられるＶＭＩＤ指標もまた、この目的のために提供される格納域９４内のそのバッファスロットに関連付けられて格納される。その後、流れは、ステップ１１０に戻る。
【００３８】
しかしながら、ステップ１１２において、リタイアした命令がバリア命令であると判定された場合、流れは、コンテキストトラッカ９６を参照して、コンテキストトラッカが、現在のＶＭＩＤ（コンテキスト）指標を有するエントリを有するかが判定される、ステップ１１８へ進む。有しない場合、流れは、格納バッファ５６が、現在のコンテキストに対するこのバリア命令に対して、対応する順序制約を強制し、すなわち、一致するＶＭＩＤを有する格納バッファスロットのみがバリアされる、ステップ１２０へ進む。その後、流れは、ステップ１１０に戻る。
【００３９】
しかしながら、ステップ１１８において、コンテキストトラッカが、現在のＶＭＩＤ（その指標がこのバリア命令に関連付けられて受信された）でマークされたエントリを有すると判定される場合、流れは、このコンテキスト（ＶＭＩＤ）に対してバリアが最後に行われて以来、このバリア命令が適用する（すなわち、ＶＭＩＤ指標の参照による）コンテキストがＡＸＩマスタ格納または他のキャッシュ維持動作をＳＣＵに送信したということ（「ＳＣＵアクセス」）を示す、ＳＣＵマーカがこのエントリに関連付けられてセットされているということを、そのエントリが示すかがチェックされる、ステップ１２２へ進む。ＳＣＵマーカがセットされている場合、流れはステップ１２４へ進み、バリアがＳＣＵに送信される。そうでなければ、流れは、直接ステップ１２６に移る。ステップ１２６において、ＤＶＭ同期化がこのコンテキストに対して最後に行われて以来、バリアが適用するコンテキスト（すなわち、このバリア命令に関連して受信されたＶＭＩＤ指標）がＤＶＭメッセージを送信したことを、対応するＶＭＩＤ指標を有するコンテキストトラッカ内のエントリが示すかが、同様に判定される。ＤＶＭ同期マーカがセットされていない場合、流れは、直接ステップ１３０に移る。しかしながら、ＤＶＭ同期マーカがセットされている場合、流れは、全ての保留中のＡＸＩマスタポートアクセスに対してデータ同期化バリア（ＤＳＢ）がその後に続く、全ての保留中のＤＶＭメッセージに対するＤＶＭ同期をバリア命令がもたらす、ステップ１２８を介して進む。そして、ステップ１３０において、一致するＶＭＩＤを有するいかなる格納バッファスロットもまたバリアされ、一度これらのアクセスの全てがドレインされると、一致するＶＭＩＤを有するコンテキストトラッカ内のエントリが消去される。その後、流れは、ステップ１１０に戻る。
【００４０】
ステップ１１４の考察に戻り、リタイアした命令がＡＸＩマスタポートへの（ＳＣＵを介した）格納であるか、またはＤＶＭ整合性命令であると判定されたならば、流れは、コンテキストトラッカが現在のコンテキストに対する（すなわち、一致するＶＭＩＤを有する）エントリを有するかが判定される、ステップ１３４へ進む。有する場合、またはステップ１３６においてコンテキストトラッカ内に自由なエントリがあると判定された場合、流れは、エントリが現在のコンテキストによる使用のために選択される、ステップ１３８へ進む。そして、ステップ１４０において、エントリは、現在のＶＭＩＤでラベル付けされ、ステップ１４２において、命令の種類、すなわち、これがＳＣＵアクセスを表すか、またはＤＶＭメッセージを送信する命令であるかを示す、対応するマーカがセットされる。そして、流れは、必要な場合、この命令に関連付けられたアクセスが、現在のＶＭＩＤ値でラベル付けされ、格納バッファのバッファスロットに割り当てられる、ステップ１１６へ進む。その後、前述の通り、流れは、ステップ１１０へ戻る。
【００４１】
しかしながら、ステップ１３６において、コンテキストトラッカ９６内に現在使用可能なエントリが存在しないと判定された場合、流れは、ステップ１４４へ進み、格納バッファは、コンテキストトラッカ内のエントリによって少なくとも１つのコンテキストに対して暗黙的バリアを行い、ここで「暗黙的」とは、このバリアが、格納バッファによって受信されたリタイアしたバリア命令の受信によって開始されたのではなく、格納バッファ自体によって開始されたという事実を反映することが理解されるべきであり、したがって、ステップ１４６において、格納バッファは、関連しているコンテキストによって、すなわち、一致するＶＭＩＤによってマークされた全ての保留中のアクセスがドレインし、格納バッファが現在取り扱っているリタイアした命令がリタイアするのを待つ。その後、ステップ１４８において、コンテキストトラッカ内の対応する１つのエントリまたは複数のエントリは消去され、流れは、ステップ１３８を介して、上述のように進む。
【００４２】
図６Ａ及び６Ｂはそれぞれ、格納バッファの動作をさらに例示するために、例示的な一連のデータ処理命令を示し、これらの命令のそれぞれが実行されるコンテキストも示す。図６Ａを参照すると、コンテキストＡ内で実行される格納（ＳＴＲ）−命令１−は、長いレイテンシアドレス（例えば、ＳＣＵを介したＡＸＩマスタポートへの）に関連するとして格納バッファによって識別され、したがって、エントリが、このコンテキストに対して、ＳＣＵアクセスマーカがセットされてコンテキストトラッカ内で作成される。命令２（同様に、識別された長いレイテンシアドレスへの格納）がリタイアした後、格納バッファは、ＳＣＵアクセス指標をマークして、コンテキストトラッカ内のエントリにコンテキストＤを追加する。命令３は、低レイテンシアドレスへの格納であり、したがって、エントリは、コンテキストＢに対してコンテキストトラッカ内で作成されない。命令４（データ同期化バリア（ＤＳＢ））がリタイアするとき、このコンテキストはコンテキストトラッカ内に対応するエントリを有しないため、格納バッファは、バリアをＳＣＵに伝達せず、したがって、（他のコンテキストに対して）現在進行中のいかなるＡＸＩマスタポート格納域を待つことも回避し、（対応する低レイテンシポートを介した）メモリの低レイテンシ部分への格納を待つだけでよい。格納バッファのコンテキストトラッカが、（図４に示される例示的な実施形態のように）使用可能な３つ以上のエントリを有するならば、命令５（長いレイテンシアドレスへの、すなわち、ＳＣＵを介したＡＸＩマスタポートへの格納）がリタイアするとき、エントリが、（対応するＶＭＩＤ及びＳＣＵアクセスによってマークされた）コンテキストＣに対してコンテキストトラッカ内で作成される。そして、命令６（ＤＳＢ）は、このコンテキスト（ＶＭＩＤ）に対してコンテキストトラッカ内でエントリが作成され、ＳＣＵマーカが、「高レイテンシコンテキスト」であることを示してセットされたということにより、リタイアし得る前に、全ての以前のＡＸＩマスタポートアクセスが完了するのを待つ必要がある。しかしながら、格納バッファのコンテキストトラッカが可能なエントリを２つしか有しないとしたら、図６Ａに示される一連の命令を通した進行のこの時点において、（これらの２つのエントリは、コンテキストＡ及びコンテキストＤのために既に占有されているため）コンテキストＣに使用可能なエントリは存在せず、したがって、格納バッファは、コンテキストトラッカのエントリを占有している高レイテンシコンテキストＡ及びＤのうちの少なくとも１つに対して、暗黙的バリアを挿入し、そして、この暗黙的バリアによって影響される全てのアクセスがドレインするのを待つ。これらのアクセスの全てがドレインすると、コンテキストトラッカ内の１つ（または両方の）エントリが空になり、コンテキストＣのために必要とされるエントリを、格納（命令５）がリタイアするのと同時に、追跡リストに追加することができる。格納は、それに対してリタイアしないように妨げられるであろう。その後、ＤＳＢ（命令６）は、全ての以前のアクセスが、この挿入された暗黙的ＤＳＢによってバリアされているべきであるため、図６Ａに示されるこの例示的な一連の命令のこの時点において、命令５の格納のみであるべきである、全てのＡＸＩマスタアクセス（高レイテンシアクセス）を待つことになろう。
【００４３】
ここで、図６Ｂに示される例示的な一連の命令を考察すると、命令１（ＴＬＢ維持動作）がリタイアした後に、格納バッファは、エントリをコンテキストトラッカに追加し、コンテキストＡがＤＶＭ動作を行った（したがって、本明細書において「非リアルタイム」コンテキストとして分類される）ことを示す。命令２は、低レイテンシアドレスを対象とする（すなわち、ＳＣＵを介さずに、ＡＸＩマスタポートへ）として認識され、したがって、対応するエントリは、コンテキストトラッカ内で作成されない。命令３（ＤＳＢ）がリタイアすると、いかなる保留中のＡＸＩマスタポート格納も待つ必要はなく（これらは、他のコンテキストにのみ適用し得るため）、これは、（識別された低レイテンシポートを介した）低レイテンシメモリアドレスへの格納を待つだけでよい。このコンテキストは、それ自体、いかなるＤＶＭ（コンテキストトラッカ内の対応するエントリの欠如（したがって、必然的に、このコンテキストに対する対応するＤＶＭ同期化マーカの欠如）によって格納バッファが識別し得る）も行っていないため、何らかの種類のＤＶＭ同期化動作を送信することも回避するであろう。命令４（長いレイテンシアドレスへの格納または別のＴＬＢ維持動作のいずれか）がリタイアした後、格納バッファは、コンテキストＣに対するエントリをコンテキストトラッカに追加し、このエントリをＳＣＵアクセスとしてマークするか、またはこのエントリを、コンテキストＣがＤＶＭ動作を行ったことを示すＤＶＭ同期マーカでマークする。その後、命令５（ＤＳＢ）がリタイアするとき、命令４が、格納（ＳＴＲ）であるか、またはＴＬＢ無効化（ＴＬＢＩＭＶＡＡ）であるかに応じて、以下の２つの可能性のうちの１つが生じる。命令４が格納である場合、ＤＳＢバリアは、この格納及びデータ処理システムによって現在取り扱われているＡＸＩマスタポートへの他の全ての格納に影響するが、ＤＶＭ同期は格納バッファから送信されない。一方で、命令４がＴＬＢ無効化である場合、ＤＳＢバリア（命令５）は、全ての以前のＤＶＭメッセージに対してＤＶＭ同期をもたらし、全ての以前のＡＸＩマスタポートアクセスに影響するＤＳＢが続く。
【００４４】
本発明の例示的な実施形態が、添付の図面を参照して、本明細書において詳細に説明されたが、本発明は、それらの正確な実施形態に限定されず、添付の特許請求の範囲に定義されるような本発明の範囲及び精神から逸脱することなく、当業者によって、種々の変更、追加、及び改良が行われ得ることが理解されるべきである。例えば、従属請求項の特徴の種々の組み合わせは、本発明の範囲から逸脱することなく、独立請求項の特徴とともに行われ得る。
【図１】
0006722182.tif 000002
【図２】
0006722182.tif 000003
【図３Ａ】
0006722182.tif 000004
【図３Ｂ】
0006722182.tif 000005
【図４】
0006722182.tif 000006
【図５】
0006722182.tif 000007
【図６Ａ】
0006722182.tif 000008
【図６Ｂ】
0006722182.tif 000009