(57)【特許請求の範囲】
【請求項１】
イニシエータと、
ターゲットと、
前記イニシエータと前記ターゲットとの間の情報の通信を可能にするように構成されたソケットとを備えるシステムであって、前記ソケットが、
第１のチャネルと、
第２のチャネルと、
第３のチャネルと
を備え、
前記ソケットは、キャッシュコヒーレンシに関係する情報の通信を許容するように構成され、
前記イニシエータは、前記第１のチャネルを介してコマンド要求を送り、前記第２のチャネルを介してコマンド応答を受信するように構成され、
前記ターゲットは、前記第２のチャネルを介して介入要求を送り、前記第３のチャネルを介して介入応答を受信するように構成される、
システム。
【請求項２】
前記ターゲットがそれを介してイニシエータとして働くように構成される第２のソケットをさらに備える、請求項１に記載のシステム。
【請求項３】
前記イニシエータがそれを介してターゲットとして働くように構成される第２のソケットをさらに備える、請求項１に記載のシステム。
【請求項４】
エージェントが一方のソケット上のイニシエータと他方のソケット上のターゲットとの両方として構成されるように配置された、第２のソケットをさらに備える、請求項１に記載のシステム。
【請求項５】
前記情報がパケット化される、請求項１に記載のシステム。
【請求項６】
前記イニシエータは、前記第１のチャネルの順方向進行とは無関係に前記第２のチャネルの順方向進行を保証するようにさらに構成される、請求項１に記載のシステム。
【請求項７】
前記ターゲットは、前記第１および第２のチャネルの順方向進行とは無関係に前記第３のチャネルの順方向進行を保証するようにさらに構成される、請求項１に記載のシステム。
【請求項８】
前記情報がアドレス可能空間のラインを指す、請求項１に記載のシステム。
【請求項９】
前記ソケットは、アドレス変換サービスに関係する情報の通信を許容するようにさらに構成される、請求項１に記載のシステム。
【請求項１０】
前記第２のチャネル上の少なくとも１つの情報がコマンド応答情報および介入要求情報を転送するように構成される、請求項１に記載のシステム。
【請求項１１】
前記イニシエータは、前記コマンド応答を、前記コマンド要求が前記ターゲットに送られた順序とは異なる順序で受信するようにさらに構成される、請求項１に記載のシステム。
【請求項１２】
前記ターゲットは、前記コマンド応答を、前記コマンド要求が前記イニシエータから送られた順序とは異なる順序で送るようにさらに構成される、請求項１に記載のシステム。
【請求項１３】
前記コマンド応答が任意の順序で受信され得る、請求項１に記載のシステム。
【請求項１４】
前記介入応答は、前記介入要求が送られた順序とは異なる順序で受信される、請求項１に記載のシステム。
【請求項１５】
前記介入応答は任意の順序で受信され得る、請求項１に記載のシステム。
【請求項１６】
キャッシュコヒーレンシに関係する情報を通信する方法であって、
ターゲットからイニシエータに第１のチャネル上で介入要求情報を転送するステップと、
前記イニシエータから前記ターゲットに第２のチャネル上で介入応答情報を転送するステップと、
前記イニシエータから前記ターゲットに第３のチャネル上でコマンド要求情報を転送するステップと、
前記第１のチャネル上でコマンド応答情報を転送するステップと
を備える方法。
【請求項１７】
前記イニシエータは、前記第３のチャネル上で情報を送ることを待つことなしに前記第１のチャネル上で情報を受け付ける、請求項１６に記載の方法。
【請求項１８】
前記イニシエータは、前記第３のチャネル上で情報を送ることまたは前記第１のチャネル上で情報を受信することを待つことなしに、前記第２のチャネル上で情報を送る、請求項１６に記載の方法。
【請求項１９】
前記ターゲットは、前記第３のチャネル上で情報を受信することを待つことなしに前記第１のチャネル上で情報を送る、請求項１６に記載の方法。
【請求項２０】
前記ターゲットは、前記第３のチャネル上で情報を受信することまたは前記第１のチャネル上で情報を送ることを待つことなしに、前記第２のチャネル上で情報を受け付ける、請求項１６に記載の方法。
【請求項２１】
情報がパケット化される、請求項１６に記載の方法。
【請求項２２】
前記パケット化された情報は、コマンド応答情報と介入要求情報とを転送する少なくとも１つのパケットを備える、請求項２１に記載の方法。
【請求項２３】
イニシエータと、
ターゲットと、
前記イニシエータと前記ターゲットとの間の情報の通信を可能にするように構成されたソケットと
を備えるシステムであって、前記ソケットは、
第１のチャネルと、
第２のチャネルと、
第３のチャネルと
を備え、
前記イニシエータは、前記第１のチャネルを介してコマンド要求を送り、前記第２のチャネルを介してコマンド応答を受信するように構成され、
前記ターゲットは、前記第２のチャネルを介して介入要求を送り、前記第３のチャネルを介して介入応答を受信するように構成される、
システム。
【請求項２４】
前記ターゲットがそれを介してイニシエータとして働くように構成された第２のソケットをさらに備える、請求項２３に記載のシステム。
【請求項２５】
前記イニシエータがそれを介してターゲットとして働くように構成された第２のソケットをさらに備える、請求項２３に記載のシステム。
【請求項２６】
エージェントが一方のソケット上のイニシエータと他方のソケット上のターゲットとの両方として構成されるように配置された、第２のソケットをさらに備える、請求項２３に記載のシステム。
【請求項２７】
前記情報がパケット化される、請求項２３に記載のシステム。
【請求項２８】
前記イニシエータは、前記第１のチャネルの順方向進行とは無関係に前記第２のチャネルの順方向進行を保証するようにさらに構成される、請求項２３に記載のシステム。
【請求項２９】
前記ターゲットは、前記第１および第２のチャネルの順方向進行とは無関係に前記第３のチャネルの順方向進行を保証するようにさらに構成される、請求項２３に記載のシステム。
【請求項３０】
前記情報がアドレス可能空間のラインを指す、請求項２３に記載のシステム。
【請求項３１】
前記ソケットは、アドレス変換サービスに関係する情報の通信を許容するようにさらに構成される、請求項２７に記載のシステム。
【請求項３２】
前記第２のチャネル上の少なくとも１つの情報がコマンド応答情報および介入要求情報を転送するように構成された、請求項２３に記載のシステム。
【請求項３３】
前記コマンド応答は、前記コマンド要求が送られた順序とは異なる順序で受信される、請求項２３に記載のシステム。
【請求項３４】
前記コマンド応答は任意の順序で受信される、請求項２３に記載のシステム。
【請求項３５】
前記介入応答は、前記介入要求が送られた順序とは異なる順序で受信される、請求項２３に記載のシステム。
【請求項３６】
前記介入応答は任意の順序で受信され得る、請求項２３に記載のシステム。
【請求項３７】
ソケットに結合されたソケットインターフェースと、ここで、前記ソケットは、第１のチャネルと、第２のチャネルと、第３のチャネルを備え、かつ前記ソケットは、キャッシュコヒーレンシ情報を搬送するように構成される、
前記第１のチャネル上でターゲットに１以上のコマンド要求を送り、
前記第２のチャネル上で前記ターゲットから１以上のコマンド応答及び１以上の介入要求を受信し、
前記第３のチャネル上で前記ターゲットに１以上の介入応答を送る
ように構成された１以上の論理構成要素と
を備える装置。
【請求項３８】
イニシエータとターゲットとの間でキャッシュコヒーレンシ情報を通信する方法であって、
前記イニシエータから前記ターゲットへ、第１のチャネル上で１以上のコマンド要求を送ることと、
前記イニシエータにおいて、前記ターゲットから、第２のチャネル上で１以上のコマンド応答及び１以上の介入要求を受信することと、
前記イニシエータから前記ターゲットへ、第３のチャネル上で１以上の介入応答を送ることと
を備える方法。
【請求項３９】
ソケットに結合されたソケットインターフェースと、ここで、前記ソケットは、第１のチャネルと、第２のチャネルと、第３のチャネルを備え、かつ前記ソケットは、キャッシュコヒーレンシ情報を搬送するように構成される、
前記第１のチャネル上でイニシエータから１以上のコマンド要求を受信し、
前記第２のチャネル上で前記イニシエータへ１以上のコマンド応答及び１以上の介入要求を送り、
前記第３のチャネル上で前記イニシエータから１以上の介入応答を受信する
ように構成された１以上の論理構成要素と
を備える装置。
【請求項４０】
イニシエータとターゲットとの間でキャッシュコヒーレンシ情報を通信する方法であって、
前記ターゲットにおいて、第１のチャネル上で前記イニシエータから１以上のコマンド要求を受信することと、
前記ターゲットから前記イニシエータへ、第２のチャネル上で１以上のコマンド応答及び１以上の介入要求を送ることと、
前記ターゲットにおいて、第３のチャネル上で前記イニシエータから１以上の介入応答を受信することと
を備える方法。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、各々が本明細書に組み込まれる、２０１１年１０月２６日に出願された発明者Ｊｅａｎ−Ｊａｃｑｕｅｓ  Ｌｅｃｌｅｒによる「A THREE-CHANNEL CACHE-COHERENCY SOCKET PROTOCOL」と題する米国仮出願第６１／５５１，９１７号、および、２０１２年１０月２４日に出願された発明者Ｊｅａｎ−Ｊａｃｑｕｅｓ  Ｌｅｃｌｅｒによる「A THREE-CHANNEL CACHE-COHERENCY SOCKET PROTOCOL」と題する米国非仮出願第１３／６５９，７８１号の優先権および利益を主張する。
【技術分野】
【０００２】
本開示は、一般に、半導体技術の分野に関し、より詳細には、キャッシュコヒーレントエージェントをもつシステムオンチップに関する。
【背景技術】
【０００３】
メモリマップシステムでは、ＣＰＵ、ＧＰＵ、または他のエージェントなどのイニシエータは、ターゲットメモリ中のデータのバイトの読取りおよび書込みを行うことによって動作する。いくつかのエージェントは、それらのデータへのアクセスを実際に得るためのレイテンシによって大きいペナルティを受ける。したがって、通常の手法は、それらが、キャッシュと称される、データのサブセットのローカル一時コピーを使用するためのものである。システムにおいてキャッシュが存在するとすぐに、システムは、メモリターゲットにデータが書き込まれないことを保証しなければならないが、いくらかの今後使われないデータは依然としてそのキャッシュに常駐する。この性質を保証する機構はキャッシュコヒーレンシと呼ばれる。
【０００４】
潜在的に、異なる会社において、異なるチームによって様々な論理構成要素が設計され得るシステムでは、キャッシュコヒーレンシ情報が交換される方法を形式化することが重要である。システムオンチップ上で、オープンコアプロトコル（ＯＣＰ：Open Core Protocol）インターナショナルパートナーシップによって促進されるＯＣＰ３．０、およびＡＲＭによって促進される高度マイクロコントローラアーキテクチャ（ＡＭＢＡ：Advanced Microcontroller Bus Architecture）高度拡張可能インターフェース（ＡＸＩ：Advanced eXtensible Interface）コヒーレンシ拡張（ＡＣＥ：Coherency Extensions）というプロトコルがキャッシュコヒーレンシを含む。集積回路間では、ＦＳＢ（Ｉｎｔｅｌによって促進されるフロントサイドバス（Front Side Bus））、ＱＰＩ（Ｉｎｔｅｌによって促進されるインテルクイックパス（Intel Quick Path））、および（ＨｙｐｅｒＴｒａｎｓｐｏｒｔコンソーシアムによって促進される）ＨｙｐｅｒＴｒａｎｓｐｏｒｔという他のプロトコルが提案されている。
【０００５】
概してプロトコル、特にキャッシュコヒーレンシプロトコルは、それらを実装する論理ブロックに対して直接的または間接的結果を有する。他の側面には以下のものがある。
【０００６】
１）プロトコル要件を満たすために必要とされる論理ゲートの量
２）最大到達可能周波数を妨害する、この論理の複雑さ
３）シリコンダイにわたる様々なエージェントの拡散によって誘起される遅延を処理する能力。
【０００７】
４）システムのアーキテクチャ性能。
【０００８】
５）設計バグのリスク
【発明の概要】
【０００９】
本発明は、コヒーレンシを実装するための簡略化された手法である。それは、わずか３つのチャネルを使用するフルキャッシュコヒーレントソケットインターフェースを実装する。それは、必要とされる論理の量を低減する。論理はより単純であり、したがってより速く動作することができる。本発明は、大きく物理的に複雑なシステムのためにスケーラブルである。それは複雑な依存性をなくし、それによってアーキテクチャ性能を改善する。本発明はまた、より単純であり、それによって設計バグのリスクを低減する。全体として、開示する本発明は、システムオンチップ内の接続性の現代のネットワークオンチップ実装形態により良く適するコヒーレンシプロトコルである。
【図面の簡単な説明】
【００１０】
【図１】本発明の教示による、ソケットを介したイニシエータとターゲットとの間の通信をもつシステムを示す図。
【図２】本発明の教示による、３つのチャネルをもつ図１のシステムを示す図。
【図３】本発明の教示による、要求がイニシエータによってターゲットに送られ、その後、応答がターゲットによってイニシエータに送られるコマンドトランザクションを示す図。
【図４】本発明の教示による、要求がターゲットによってイニシエータに送られ、その後、応答がイニシエータによってターゲットに送られる介入トランザクションを示す図。
【図５】本発明の教示による、コマンドの応答と介入の要求とが同じパケットによって搬送される、コマンドと介入とを含む自己介入を示す図。
【図６】本発明の教示による、４つのＤＳＰをもつシステムを示す図。
【詳細な説明】
【００１１】
次に図１を参照すると、キャッシュコヒーレンシ情報を搬送するためにソケット１６を介してターゲット１４に接続されたイニシエータ１２をもつシステム１０が示されている。情報は、チャネルを介してイニシエータ１２とターゲット１４との間で搬送される。チャネルは、送信側が受信側に情報を送り得る情報転送のための単方向インターフェースであり、受信側は、送信側が情報を送るのを停止させることが可能である。
【００１２】
ソケット１６はいくつかのチャネルを備え、チャネルのいくつかについては、イニシエータ１２が送信側として働き、ターゲット１４が受信側として働き、チャネルのいくつかについては、ターゲット１４が送信側として働き、イニシエータ１２が受信側として働く。チャネルの通常の実装形態は以下を備える。
【００１３】
信号が情報のワードを搬送する、送信側から受信側へのデータ信号、
情報のワードを搬送したいという送信側の要望を示す、送信側から受信側への有効信号、および
情報のワードを受け付けたいという受信側の意思を示す、受信側から送信側へのレディ信号。
【００１４】
送信側と受信側の両方は、有効信号とレディ信号の両方が主張されたときに情報のワードが転送されることに同意する。受信側が、クレジットを介して、情報を受け付ける能力を送信側に示す実装形態、または複数のチャネルが同じ物理ワイヤ上で多重化される実装形態など、チャネルの他の実装形態が可能である。
【００１５】
本発明の一態様によれば、プロトコルは３つのチャネルを使用する。ＡＣＥ拡張をもつＡＸＩプロトコルは、（ＡＲ、Ｒ、ＡＷ、Ｗ、Ｂ、ＡＣ、ＣＲ、およびＣＤと称される）８つのチャネルと、受信側が送信側によって与えられた情報を無条件に受け付けなければならない２つの縮退チャネル（ＲＡＣＫ、ＷＡＣＫ）とを使用する。ＯＣＰ３．０のプロトコルは４つのチャネルを使用する。
【００１６】
次に図２を参照すると、開示するプロトコルは３つのチャネルを含む。アルファ（α）およびガンマ（γ）と称される、２つのチャネル２０および２２は、イニシエータ１２からターゲット１４に情報を転送するように適応される。ベータ（β）と称される１つのチャネル２４は、ターゲット１４からイニシエータ１２に情報を転送するように適応される。チャネルを通過した情報は、通常、パケットにフレーム化され、それのプロセスはパケット化として知られている。パケットは、情報の１つまたは複数のワードからなる。
【００１７】
多くのプロトコルの場合のように、イニシエータ１２またはターゲット１４は、何らかの動作を実行するためにそれのカウンターパートを要求し、カウンターパートは、動作が実際に実行されたことを後で確認する。そのような交換はトランザクションとして知られている。トランザクションは、一方向に流れる要求パケットと、反対方向に流れる応答パケットとを備える。トラフィックがトランザクションのみからなるプロトコルは、興味深い性質を与える。たとえば、開闢以来参照された要求パケットの数と応答パケットの数との間の差を計数することによって、何かが「飛行中」であるかどうかを低コストで判断することが常に可能である。
【００１８】
次に図３を参照すると、コマンドと呼ばれるトランザクション３０は、イニシエータからターゲットにチャネル２０を介して送られた要求パケットと、ターゲットからイニシエータにチャネルβ２４を介して送られた応答パケットとを含む。要求がイニシエータ１２からターゲット１４に進む（したがって応答がターゲット１４からイニシエータ１２に進む）トランザクションはコマンドと呼ばれる。
【００１９】
次に図４を参照すると、介入と呼ばれるトランザクション４０が示されている。要求は、チャネルβ２４を介してターゲット１４からイニシエータ１２に流れる。応答は、チャネルγ２２を介してイニシエータ１２からターゲット１４に流れる。
【００２０】
次に図５を参照すると、トランザクション５０が示されている。最初に、イニシエータ１２からターゲット１４へのコマンド要求がチャネル２０を介して送られる。次に、本発明の一態様によれば、パケットがチャネルβ２４上でターゲット１４からイニシエータ１２に送られる。パケットは、同時にコマンド応答と介入要求とを備える。最後に、介入応答パケットがチャネルγ２２上でイニシエータ１２からターゲット１４に送られる。そのような結合されたコマンドと介入は自己介入と呼ばれる。
【００２１】
キャッシュコヒーレントシステムでは、アドレス空間は、通常、ラインと呼ばれる所与のグラニュラリティに分割される。ラインサイズは、通常、アドレス空間の２のべき乗連続バイトである。ソケットインターフェースは、概して、トランザクション分割と、トランザクション順序付けと、部分応答順序付けとのためのサポートを必要とし得るが、これらのうちのいずれも、イニシエータとしてキャッシュをもつシステムの実装形態に不可欠ではない。本発明による、最適化されたソケットインターフェースは、非コヒーレントトランザクションの要件のためのサポートがないことによって論理を簡略化した。本発明の実施形態は、分割論理と、順序付け論理と、部分応答順序付け論理とのうちの１つまたは複数のサポートを回避する。
【００２２】
本発明の教示によれば、より小さい数（わずか３つ）のチャネルを使用することは、既存の標準プロトコルに勝るいくつかの利益および利点を有する。あらゆるチャネルが独立したフロー制御を有するので、ある量の論理およびデータバッファリングが各チャネルのために与えられなければならない。このコストは、より少ないチャネルを有することによって最小限に抑えられる。さらに、所与のチャネル中のパケットは当然順序付けられているが、チャネル間のパケットは論理競合状態を有することになりやすい。そのような競合状態を防ぐことは、上位レイヤプロトコルにおいてより大きい複雑さを必要とする。これは、共有コマンド応答および介入要求チャネルによって保証される順序付けによって回避される。
【００２３】
たとえば、たいていのキャッシュコヒーレンシプロトコルにおいて、イニシエータはラインの所有権を獲得し得、ターゲットは、イニシエータがこの所有権を解放することを要求し得る。ＡＣＥにおいて、所有権は「Ｒ」チャネルを介して転送され、「ＡＣ」チャネルを介して解放される。これは、ラインの所有権がイニシエータに到着したことを、したがって「ＲＡＣＫ」擬似チャネルの存在についてターゲットが確信するまで、ターゲットがラインの解放を要求するのを制限するという特定のルールをプロトコルにおいて必要とする。結果として、ＡＣＥターゲットは、イニシエータに現在与えられている所有権のコンテキストを維持し、対応する解放を要求するのを控えなければならない。フルスループットで動作するために、このテーブルは、（Ｒを介して）ターゲットからイニシエータにそして（ＲＡＣＫを介して）ターゲットに戻るラウンドトリップ時間に比例するいくつかのコンテキストを含むことが可能でなければならない。特定の状況では、このラウンドトリップを延長する、イニシエータとターゲットとの間を横断するクロック領域を導入することが望ましいことがある。「ＡＣ」チャネル上の介入要求は、最初にこのコンテキストテーブルを検索しなければならない。ある実装形態では、この必要なルックアップは完全追加遅延サイクルを要し得る。
【００２４】
ＯＣＰ３．０プロトコルによれば、所有権は、コマンド応答チャネルを介して転送され、異なる介入要求チャネルを介して解放される。レースを回避するために、ＯＣＰは、イニシエータによって放出されたコマンドがターゲットを介して実際にそれ自体にループバックされる自己介入を使用する。それによって、イニシエータは、システムの残部とそれ自体の自己介入とから来る介入の相対的順序付けを検出することが可能である。本発明によれば、ＯＣＰ３．０自己介入によって作成されるトラフィックオーバーヘッドは回避される。
【００２５】
ＯＣＰ３．０では、あらゆるコマンドが、目的を順序付けるための自己介入を生成する。本発明では、コマンド応答と介入要求との相対的順序付けが、たいていの自己介入を不要にする。しかしながら、いくつかの自己介入は、図５に示すように、興味深いプロパティを有する。たとえば、ＡＣＥにおいて、イニシエータは、転送がイニシエータによって開始されるかまたはターゲットによって開始されるかに依存する２つの異なる機構を介して、ローカルで変更された（通常「ダーティーな」と呼ばれる）データをターゲットに戻し得る。それ自体によって開始されるとき、イニシエータはＡＷチャネル上で「ＷｒｉｔｅＢａｃｋ」コマンドを要求し、後に「Ｂ」チャネル上で応答を受信する。ターゲットによって開始されるとき、イニシエータは「ＡＣ」チャネルを介して介入要求を受信し、「ＣＲ」チャネルを介して応答する。ターゲット開始追い立てがキャッシュコヒーレントシステムに存在しなければならないとき、本発明は、イニシエータ開始追い立てのためにこの必要な機構を再利用する。自己介入はこれを単純にし、イニシエータは、イニシエータからラインを追い立てることをターゲットに要求するコマンド要求を送る。ターゲットからのコマンド応答も、ラインの追い立てを要求する介入要求である。
【００２６】
デッドロックの可能性を回避するために、複雑な、遅い、誤りを起こしやすい論理を必要とする多くの複雑なルールが、論理の設計者によって、多くのチャネルプロトコルとインターフェースするターゲット側またはイニシエータ側のソケット上に実装される必要がある。本発明において、情報は、α、β、γを介してその順序で流れる。イニシエータはα上のフロー制御の結果としてβ上の順方向進行を防ぐことを許されないという単純なルールと、ターゲットはβ上のフロー制御の結果としてγ上の順方向進行を防ぐことを許されないという単純なルールとを用いて、トランスポートレベルのデッドロックのリスクが回避される。さらに、ルールは、形式的プロパティ―チェッカーによって検証されるのに十分単純である。
【００２７】
また、いくつかのシステムでは、キャッシュコヒーレントエージェントをカスケードにすることが望ましい。これは、たとえば、相互接続複数オンチップスイッチファブリックのために有用であり得る。そうするために、一方の側にイニシエータソケットインターフェース、反対側にターゲットソケットインターフェースを有するエージェントを必要とする。そのようなエージェントは、内部キャッシュを備え得る。カスケードキャッシュコヒーレントシステムは、従来のプロトコルの複雑な順序付けルールを用いて実行不可能である。たとえば、順序ルールを維持するために、スヌープミスに続くスヌープヒットは、スヌープミス応答が戻されるまで待たなければならない。これは時間がかかり、システム性能に有害である。本発明は、カスケードキャッシュコヒーレントソケットの実際的実装形態を生成する。
【００２８】
次に図６を参照すると、４つのＤＳＰプロセッサのシステム６０はスイッチファブリック６２に接続され、スイッチファブリック６２はまた、ＲＡＭ６４と内部キャッシュ６６とに接続される。内部キャッシュ６６は第２のスイッチファブリック６８に接続され、第２のスイッチファブリック６８は、２つのＣＰＵのシステム７０に接続され、ダウンストリームバッキングストアアクセスを管理する。任意の２つの接続された要素は、３チャネルキャッシュコヒーレンシプロトコルを使用して、コマンド要求と、コマンド応答と、介入要求と、介入応答とを実行し得る。
【００２９】
現代のシステムでは、実際のイニシエータによって使用されるアドレスは、通常、物理的メモリのアドレスではない。イニシエータによって使用されるアドレスは仮想アドレス（ＶＡ）と呼ばれ、メモリによって使用されるアドレスは物理アドレス（ＰＡ）と呼ばれる。キャッシュコヒーレントシステムでは、仮想から物理へのアドレス変換は、キャッシュ階層の上流で行われなければならない。これは、変換索引バッファ（ＴＬＢ）と呼ばれる直近の変換のキャッシュによって行われる。ＴＬＢは、それの変換が未知であるアクセスに遭遇したとき、変換について要求しなければならない。「ページテーブル」と呼ばれるデータ構造では、所与のアドレスの実際の仮想から物理への変換を計算することは、メモリにおけるいくつかの連続アクセスを必要とする。その変換を行う論理は、ページテーブルを移動するので、時々「ウォーカー」と呼ばれる。各ステップがより短いほどウォーカーはより高速に動作し、したがって、ウォーカーは、メモリに近い、キャッシュ階層の下流に配置される傾向がある。ＴＬＢとウォーカーとが離れているとき、それらは通信しなければならない。交換は、アドレス変換サービス（ＡＴＳ）と呼ばれることがある。
【００３０】
ＡＴＳは、ＴＬＢがウォーカーからのアドレス変換を要求する交換と、ウォーカーがいくつかの前に確立された変換の無効化を要求する他の交換とを備える。本発明は、変換要求のためのコマンドと無効化要求のための介入とを使用して、効率的にアドレス変換サービスをトランスポートすることが可能である。
【００３１】
本発明の様々な態様による、イニシエータまたはターゲットなど、説明する構成要素のうちの少なくとも１つは製造品である。製造品の例としては、サーバ、メインフレームコンピュータ、携帯電話、携帯情報端末、パーソナルコンピュータ、ラップトップ、セットトップボックス、ＭＰ３プレーヤ、電子メール使用可能なデバイス、タブレットコンピュータ、１つまたは複数のプロセッサを有するウェブ対応デバイス、またはデータを受信し、データを送信し、データを記憶し、または方法を実行するためのアルゴリズム（たとえば、コンピュータ可読プログラムまたはソフトウェア）を実行するように構成された他の専用コンピュータ（たとえば、中央処理ユニット、グラフィカル処理ユニット、またはマイクロプロセッサ）がある。例として、イニシエータおよび／またはターゲットはそれぞれ、１つまたは複数のステップを実行するために、非一時的コンピュータ可読媒体上の符号化されたコンピュータ可読プログラムコードを実行するプロセッサを含むコンピューティングデバイスの一部である。
【００３２】
本発明は、説明した特定の実施形態または態様に限定されず、したがって変化し得ることを理解されたい。また、本発明の範囲は添付の特許請求の範囲によってのみ限定され、明細書で使用する用語は、特定の実施形態について説明するためのものにすぎず、限定するものではないことを理解されたい。
【００３３】
チャネルの数またはチップの数またはモジュールの数など、値の範囲が与えられた場合、その範囲の上限と下限との間の各介在値と、その示された範囲内の他の示された値または介在値とが本発明内に包含されることを理解されたい。これらのより小さい範囲の上限および下限は、これらのより小さい範囲に独立して含まれ得、また、示された範囲内の明確に除外された限界を条件として、本発明内に包含される。示された範囲が限界の一方または両方を含む場合、それらの含まれる限界のいずれかまたは両方を除外する範囲も本発明に含まれる。
【００３４】
別段に定義されていない限り、本明細書で使用するすべての技術用語および科学用語は、本発明が属する当業者によって一般に理解されるのと同じ意味を有する。また、明細書で説明するものと同様または同等な任意の方法および材料が、本発明の実施または試験において使用され得る。
【００３５】
本明細書において引用されるすべての公開および特許は、各個々の公開または特許が明確に個々に参照により組み込まれることが示されたように参照によって本明細書に組み込まれ、公開がそれとともに引用される方法および／または材料を開示および説明するために参照によって本明細書に組み込まれる。公開の引用は、出願日より前のそれの開示についてであり、先行発明によってそのような公開よりも前の日付にする権利が本発明にないことの承認として解釈されてはならない。さらに、提供した公開日は、実際の公開日付とは異なることがあり、別個に確認される必要があり得る。
【００３６】
本明細書および添付の特許請求の範囲で使用する単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈が別段に明確に規定しない限り、複数の指示対象を含むことに留意されたい。特許請求の範囲が、任意の随意の要素を除外するために作成され得ることにさらに留意されたい。したがって、この文は、請求項要素の具陳に関する「単に」「のみ」などのような排他的用語の使用、または「否定」限定の使用のための先の記載として提供するものである。
【００３７】
本開示を読めば当業者に明らかであるように、本明細書で説明し例示した個々の実施形態の各々は、容易に本発明の範囲または趣旨から逸脱することなく他のいくつかの実施形態のいずれかの特徴から分離され、またはそれと組み合わされ得る個別構成要素および特徴を有する。具陳された方法は、具陳されたイベントの順序または論理的に可能である他の順序で行われ得る。
【００３８】
上記の発明について、理解の明快のために例示および例としてある程度詳細に説明したが、添付の特許請求の範囲の趣旨または範囲から逸脱することなく、いくつかの変更および改変がそれに行われ得ることは、本発明の教示に照らして当業者に直ちに明らかになる。
【００３９】
したがって、上記は本発明の原理を示すものにすぎない。本明細書では明示的に説明または図示していないが、本発明の原理を実施し、その趣旨および範囲内に含まれる様々な構成を、当業者なら考案することができることを諒解されよう。さらに、本明細書に具陳するすべての例および条件付き言語は、主に、技術を進めるために読者が本開示の原理と発明者によって与えられた概念とを理解するのを助けるためのものであり、そのような明確に具陳する例および条件に限定されないものと解釈されるべきである。さらに、本発明の原理、態様、および実施形態、ならびに本発明の特定の例を記載する本明細書のすべての記述は、本発明の構造的均等物と機能的均等物の両方を包含するものする。さらに、そのような均等物は、現在知られている均等物と将来開発される均等物の両方、すなわち、構造にかかわらず同じ機能を実行する開発されるどんな要素をも含むものとする。本発明の範囲は、したがって、本明細書で図示および説明した例示的な実施形態に限定されるものではない。そうではなく、本発明の範囲および趣旨は、添付の特許請求の範囲によって具現される。
以下に、本願の当初の特許請求の範囲に記載された発明を付記する。
［１］
イニシエータと、
ターゲットと、
前記イニシエータと前記ターゲットとの間の情報の通信を可能にするソケットと
を備えるシステムであって、前記ソケットが、
第１のチャネルと、
第２のチャネルと、
第３のチャネルと
を備え、
前記ソケットが、キャッシュコヒーレンシに関係する情報の通信を可能にする、
システム。
［２］
前記ターゲットがそれを介してイニシエータとして働く第２のソケットをさらに備える、［１］に記載のシステム。
［３］
前記イニシエータがそれを介してターゲットとして働く第２のソケットをさらに備える、［１］に記載のシステム。
［４］
エージェントが一方のソケット上のイニシエータと他方のソケット上のターゲットとの両方であるように配置された、第２のソケットをさらに備える、［１］に記載のシステム。
［５］
前記情報がパケット化される、［１］に記載のシステム。
［６］
前記イニシエータが、前記第１のチャネルの順方向進行とは無関係に前記第２のチャネルの順方向進行を保証する、［１］に記載のシステム。
［７］
前記ターゲットが、前記第１および第２のチャネルの順方向進行とは無関係に前記第３のチャネルの順方向進行を保証する、［１］に記載のシステム。
［８］
前記情報がアドレス可能空間のラインを指す、［１］に記載のシステム。
［９］
前記ソケットがまた、アドレス変換サービスに関係する情報の通信を可能にする、［１］に記載のシステム。
［１０］
前記イニシエータが、前記第１のチャネルを介してコマンド要求を送り、前記第２のチャネルを介してコマンド応答を受信し、
前記ターゲットが、前記第２のチャネルを介して介入要求を送り、前記第３のチャネルを介して介入応答を受信する、［１］に記載のシステム。
［１１］
前記第２のチャネル上の同じ情報がコマンド応答としておよび介入要求として同時に見なされる、［１０］に記載のシステム。
［１２］
前記コマンド応答は、前記コマンド要求が送られた前記順序とは異なる順序で受信される、［１０］に記載のシステム。
［１３］
前記コマンド応答は、前記コマンド要求が送られた前記順序とは異なる順序で受信される、［１０］に記載のシステム。
［１４］
前記コマンド応答が任意の順序で受信され得る、［１０］に記載のシステム。
［１５］
前記介入応答は、前記介入要求が送られた前記順序とは異なる順序で受信される、［１０］に記載のシステム。
［１６］
前記介入応答が任意の順序で受信され得る、［１０］に記載のシステム。
［１７］
前記イニシエータが、前記第１のチャネルを介してコマンド要求を送り、前記第２のチャネルを介してコマンド応答を受信する、［１］に記載のシステム。
［１８］
前記コマンド応答は、前記コマンド要求が送られた前記順序とは異なる順序で受信され得る、［１７］に記載のシステム。
［１９］
前記コマンド応答が任意の順序で受信され得る、［１７］に記載のシステム。
［２０］
前記ターゲットが、前記第２のチャネルを介して介入要求を送り、前記第３のチャネルを介して介入応答を受信する、［１］に記載のシステム。
［２１］
前記介入応答は、前記介入要求が送られた前記順序とは異なる順序で受信され得る、［２０］に記載のシステム。
［２２］
前記介入応答が任意の順序で受信され得る、［２０］に記載のシステム。
［２３］
キャッシュコヒーレンシに関係する情報を通信する方法であって、
ターゲットからイニシエータに第１のチャネル上で介入要求情報を転送するステップと、
前記イニシエータから前記ターゲットに第２のチャネル上で介入応答情報を転送するステップと、
前記イニシエータから前記ターゲットに第３のチャネル上でコマンド要求情報を転送するステップと、
前記第１のチャネル上でコマンド応答情報を転送するステップと
を備える方法。
［２４］
前記イニシエータが、前記第３のチャネル上で情報を送ることを待つことなしに前記第
１のチャネル上で情報を受け付ける、［２３］に記載の方法。
［２５］
前記イニシエータが、前記第３のチャネル上で情報を送ることまたは前記第１のチャネル上で情報を受信することを待つことなしに、前記第２のチャネル上で情報を送る、［２３］に記載の方法。
［２６］
前記ターゲットが、前記第３のチャネル上で情報を受信することを待つことなしに前記第１のチャネル上で情報を送る、［２３］に記載の方法。
［２７］
前記ターゲットが、前記第３のチャネル上で情報を受信することまたは前記第１のチャネル上で情報を送ることを待つことなしに、前記第２のチャネル上で情報を受け付ける、［２３］に記載の方法。
［２８］
情報がパケット化される、［２３］に記載の方法。
［２９］
１つのパケットがコマンド応答情報と介入要求情報とを転送する、［２８］に記載の方法。
［３０］
イニシエータと、
ターゲットと、
前記イニシエータと前記ターゲットとの間の情報の通信を可能にするソケットと
を備えるシステムであって、前記ソケットが、
第１のチャネルと、
第２のチャネルと、
第３のチャネルと
を備え、
前記イニシエータが、前記第１のチャネルを介してコマンド要求を送り、前記第２のチャネルを介してコマンド応答を受信し、
前記ターゲットが、前記第２のチャネルを介して介入要求を送り、前記第３のチャネルを介して介入応答を受信する、
システム。
［３１］
前記ターゲットがそれを介してイニシエータとして働く第２のソケットをさらに備える、［３０］に記載のシステム。
［３２］
前記イニシエータがそれを介してターゲットとして働く第２のソケットをさらに備える、［３０］に記載のシステム。
［３３］
エージェントが一方のソケット上のイニシエータと他方のソケット上のターゲットとの両方であるように配置された、第２のソケットをさらに備える、［３０］に記載のシス
テム。
［３４］
前記情報がパケット化される、［３０］に記載のシステム。
［３５］
前記イニシエータが、前記第１のチャネルの順方向進行とは無関係に前記第２のチャネルの順方向進行を保証する、［３０］に記載のシステム。
［３６］
前記ターゲットが、前記第１および第２のチャネルの順方向進行とは無関係に前記第３のチャネルの順方向進行を保証する、［３０］に記載のシステム。
［３７］
前記情報がアドレス可能空間のラインを指す、［３０］に記載のシステム。
［３８］
前記ソケットがまた、アドレス変換サービスに関係する情報の通信を可能にする、［３０］に記載のシステム。
［３９］
前記第２のチャネル上の同じ情報がコマンド応答としておよび介入要求として同時に見なされる、［３０］に記載のシステム。
［４０］
前記コマンド応答は、前記コマンド要求が送られた前記順序とは異なる順序で受信される、［３０］に記載のシステム。
［４１］
前記コマンド応答が任意の順序で受信される、［３０］に記載のシステム。
［４２］
前記介入応答は、前記介入要求が送られた前記順序とは異なる順序で受信される、［３０］に記載のシステム。
［４３］
前記介入応答が任意の順序で受信され得る、［３０］に記載のシステム。
【図１】
0005911964.tif 000002
【図２】
0005911964.tif 000003
【図３】
0005911964.tif 000004
【図４】
0005911964.tif 000005
【図５】
0005911964.tif 000006
【図６】
0005911964.tif 000007