説明

コヒーレンシ・プロトコルを有するシステム内の1またはそれ以上のプロセッサに対応する1またはそれ以上のキャッシュへのクリーン・データのプッシング

クリーン状態のデータをマルチプル・プロセッサのキャッシュへプッシュするための技術を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施例は、マルチプロセッサ・コンピュータ・システムに関する。より詳しくは、本発明の実施例は、バス・エージェントが、クリーン・データをコヒーレント・マルチプロセッサ・コンピュータ・システム内の複数のプロセッサに対応するキャッシュにプッシュすることを可能にすることに関する。
【背景技術】
【0002】
チップ・マルチプロセッサ(Chip Multi-Processor)を含む現在のマルチプロセッサ・システムにおいて、例えば、ネットワーク媒体アクセス・コントローラ(MAC)、格納コントローラ、表示コントローラのような入力/出力(I/O)装置が、プロセッサ・コアによって処理されるべき一時的なデータを生成することが一般的である。従来のメモリベースのデータ転送技術を使用して、一時的なデータはメモリに書き込まれ、続いてプロセッサ・コアによってメモリから読取られる。したがって、単一のデータ転送のために2つのメモリ・アクセスが必要である。
【0003】
従来のメモリベースのデータ転送技術は、単一のデータ転送のために複数のメモリ・アクセスを必要とするので、これらのデータ転送がシステム性能のボトルネックとなることがある。この性能上の不利益は、これらのメモリ・アクセスが典型的にはチップ外にあるという事実によってさらに増大され、これによって、付加的な電力消散が生じるばかりでなく、さらなるメモリ・アクセス・レイテンシが生じることになる。したがって、現在のデータ転送技術は、性能および電力に関して、システムを非能率にしている。
【0004】
本発明は、添付図面中の図によって例示されるが、それは本発明を限定するものではなく、また、図面中の同じ参照番号は同様の要素を示す。
【発明の開示】
【0005】
以下の説明において、多数の特定の詳細事項が記述される。しかしながら、本発明の実施例は、これらの特定の詳細事項の範囲を越えて実施される場合がある。また、周知の回路、構造、および技術については、本説明の理解を不明瞭にしないために、詳細に記述しない。
【0006】
キャッシュ・コヒーレンシのためのハードウェア・サポートを有する従来のキャッシュ設計では、キャッシング・エージェントはキャッシュ・ラインの排他的な所有権を獲得し、その後当該エージェントが当該エージェントによって制御されるキャッシュ中のキャッシュ・ラインを修正することができる。エージェントがそのラインの排他的な所有権を獲得するキャッシュを制御しないで、プロセッサに接続された外部装置がデータを直接プロセッサ・キャッシュにプッシュするアーキテクチャーおよび技術が以下に詳述される。
【0007】
一実施例において、データをマルチプロセッサ・システムへプッシュする準備をしている(データを受け取るキャッシュ・メモリを有するマルチプル・プロセッサの)外部エージェントは、次のプッシュ動作を、全てプロセッサおよびメモリ・システム(例えば、メモリ・コントローラ)にまず通知する。共有バス・システムでは、例えば、通知メッセージは、共有アドレス・バス・トランザクションをスヌープするプロセッサによって遂行される。ポイント・ツー・ポイント・システムでは、通知メッセージは、メモリ・コントローラと同様に、全てのプロセッサに送られる。
【0008】
共有バス・システムでは、すべてのプロセッサおよびメモリ・コントローラのために単一のマルチキャスト・データ転送がある。ポイント・ツー・ポイント・システムでは、データは、1またはそれ以上のメモリ・コントローラと同様に、全てのプロセッサへ個別に送られる。要求が全てのプロセッサおよびメモリ・コントローラによって受け入れられると、書き込まれたデータは、全てのプロセッサおよびメモリに送られる。要求の受入れは、承認メッセージ、および/または、再試行またはストールの不存在によって判定される。さらに、アドレス・トランザクションのための共有バス、およびデータ・トランザクションのためのポイント・ツー・ポイント接続を有することも可能であり、その逆もまた可能である。
【0009】
一実施例において、ポイント・ツー・ポイント・システムでは、データは、各プロセッサおよびメモリへ個別に送られる。各プロセッサは、そのデータをキャッシュ・メモリ内に書き込み(あるいは上書きし)、コヒーレンシ状態を(例えば、MSI/MESI/MOESIシステムにおける「共有(Shared)」に、またはVIシステムにおける「有効(Valid)」に)更新する。対応するメモリ位置も更新される。
【0010】
一実施例において、1またはそれ以上の次の状態が、コヒーレンシ目的のために使用される。「修正済(Modified)」は、修正され、かつキャッシュ・メモリに格納されたデータを意味し、メモリ内の対応するデータは対応して修正されず、したがって無効である。「共有(Shared)」は、マルチプル・キャッシュ・メモリによって格納されたデータを意味し、メモリ内の対応するコピーは有効である。「排他的(Exclusive)」は、ただ1つのキャッシュ・メモリに格納されたデータを意味し、メモリ内の対応するコピーは有効である。「所有(Owned)」は、ただ1つのキャッシュ・メモリに格納されたデータを意味し、メモリ内の対応するコピーは無効である。「無効(Invalid)」は、無効であるキャッシュ・メモリ内に格納されたデータを意味する。「有効(Valid)」は、有効なキャッシュ・メモリに格納されたデータを意味する。
【0011】
図1は、コンピュータ・システムの一実施例のブロック図である。図1に示されたコンピュータ・システムは、一連のコンピュータ・システムを表わすことを意図する。他のコンピュータ(あるいは非コンピュータ)システムは、より多くの、またはより少ない、および/または、異なるコンポーネントを含むことができる。
【0012】
一実施例において、コンピュータ・システム100は、コンポーネント間で情報を通信するために相互接続110を含む。プロセッサ120は、情報を処理するために相互接続110に結合される。さらに、プロセッサ120は内部キャッシュ122を含むが、それは任意の数の内部キャッシュ・メモリを表わす。一実施例において、プロセッサ120は、外部キャッシュ125に結合される。コンピュータ・システム100は、さらに、情報を処理するために相互接続110に結合されたプロセッサ130を含む。プロセッサ130は、内部キャッシュ132を含むが、それは、任意の数の内部キャッシュ・メモリを表わす。一実施例において、プロセッサ130は、外部キャッシュ135に結合される。
【0013】
コンピュータ・システム100には、2つのプロセッサが図示されているが、コンピュータ・システム100は、任意の数のプロセッサおよび/またはコプロセッサを含めることもできる。コンピュータ・システム100は、さらに、相互接続110に結合されたランダム・アクセス・メモリ・コントローラ140を含む。メモリ・コントローラ140は、相互接続110とメモリ・サブシステム145との間でインターフェイスの役割を果たし、それは1またはそれ以上のタイプのメモリを含む。例えば、メモリ・サブシステム145は、プロセッサ120および/またはプロセッサ130によって実行される情報および命令を格納するためのランダム・アクセス・メモリ(RAM)または他のダイナミックな格納装置を含む。メモリ・サブシステム145はまた、プロセッサ120および/またはプロセッサ130によって命令が実行される間、一時的数値変数または他の中間情報を格納するために使用することができる。メモリ・サブシステムは、さらに、プロセッサ120および/またはプロセッサ130のために静的情報および命令を格納するためのリード・オンリ・メモリ(ROM)および/または他の静的格納装置を含む。
【0014】
相互接続110は、さらに、入力/出力(I/O)装置150に結合され、それは、例えば、ユーザに情報を表示するための陰極線管(CRT)コントローラまたは液晶ディスプレイ(LCD)コントローラのような表示装置、プロセッサ120に情報およびコマンドの選択を伝達するキーボードまたはタッチ・スクリーンのような英数字入力装置、および/またはプロセッサ102に方向情報およびコマンド選択を伝達し、表示装置上のカーソル移動を制御するためのマウス、トラックボール、カーソル方向キーのようなカーソル・コントロール装置を含む。多様なI/O装置が当技術において知られている。
【0015】
コンピュータ・システム100は、さらに、ワイヤード(有線)および/またはワイヤレス・インターフェイスを経由して、ローカル・エリア・ネットワークのような1またはそれ以上のネットワークへのアクセスを提供するためのネットワーク・インターフェイス160を含む。格納装置170は、情報および命令を格納するために相互接続110に結合される。
【0016】
命令は、ワイヤードまたはワイヤレスのいずれかの、(例えば、ネットワーク・インターフェイス160を経由してネットワーク上の)リモート接続等を経由して、磁気ディスク、リード・オンリ・メモリ(ROM)集積回路、CD−ROM、DVDのような格納装置170からメモリ・サブシステム145に提供される。他の実施例では、ハードワイヤード回路が、ソフトウェア命令の代わりに、またはその命令と組み合わせて使用されてもよい。したがって、命令のシーケンスの実行は、ハードウェア回路およびソフトウェア命令のいかなる特定の組合せにも制限されない。
【0017】
電子的にアクセス可能な媒体は、電子機器(例えば、コンピュータ、個人用デジタル情報処理端末、携帯電話)によって読取り可能な形式で、内容(例えば、コンピュータで実行可能な命令)を提供(すなわち、記憶および/または転送)する全てのメカニズムを含む。例えば、機械アクセス可能な媒体は、リード・オンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気ディスク格納媒体、光学的格納媒体、フラッシュ・メモリ装置、伝搬信号(例えば、搬送波、赤外線信号、デジタル信号)の電気的、光学的、聴覚的、または他の形式などを含む。
【0018】
図2は、外部エージェントからのプッシュ動作の概念図である。図2の例は、1またはそれ以上のプロセッサおよびメモリへデータをプッシュする(プロセッサへの)外部エージェントに対応する。一実施例において、外部エージェントによってプッシュされたデータは、プロセッサおよびメモリによってクリーン状態(例えば、「共有」または「有効」)に格納される。外部エージェントは、例えば、ダイレクト・メモリ・アクセス(DMA)装置またはデジタル信号プロセッサ(DSP)である。
【0019】
以下でより詳細に記述されるように、外部エージェント200によってプッシュされたデータは、全てのキャッシュ・ラインに対応し、または、データは、一部のキャッシュ・ラインに対応する。一実施例において、プッシュ動作210の間に、外部エージェント200は、プロセッサ120の内部キャッシュ122、プロセッサ130の内部キャッシュ132、およびメモリ・コントローラ140へデータをプッシュする。次に、外部エージェント200によってプッシュされたデータは、メモリ内と同様に各プロセッサのキャッシュ内のクリーン状態に、コヒーレント的に存在する。したがって、そのデータは、対応するアドレスへの後続のロード上でプロセッサのいずれかによってヒットしたキャッシュのために利用可能である。そのプッシュされたデータはクリーン状態に格納されるので、いずれかのプロセッサが、例えば、競合性ミスまたは容量性ミスの結果として、そのデータを置換する場合、その置換はメモリへのライト・バック動作なしに実行される。
【0020】
全てのキャッシュ・ラインのためのプッシュ動作の例
図3は、ライトバック・コヒーレンシ・プロトコルを使用して、全てのキャッシュ・ラインをシステム内にキャッシュ・メモリを有するマルチプル・ターゲット・プロセッサへプッシュするための技術の一実施例を示すフローチャートである。本実施例において、プッシュ要求は、システム内の各ターゲット・エージェント(例えば、プロセッサ)に送られる(300)。プッシュ要求の送出は、例えば、相互接続として共有バスを使用するマルチプロセッサ・システム内の全てのプロセッサへのブロードキャスト・メッセージによって、あるいは、ポイント・ツー・ポイント相互接続の場合には各プロセッサへの個々のメッセージによって遂行される。
【0021】
要求が全てのターゲット・エージェントによって受け入れられていない場合(310)、再試行手順が実行される(320)。全てのターゲット・エージェントが要求を受け入れる場合(310)、各ターゲット・エージェントは、プッシュされているキャッシュ・ラインがそのキャッシュ・メモリ内に存在するかどうかを判定する(330)。本実施例において、キャッシュ・ラインが存在する場合(330)、キャッシュ・ラインの状態は更新されるか、または「共有」のまま維持される(340)。キャッシュ・ラインは、外部エージェントによってプッシュされているデータで上書きされる(350)。
【0022】
キャッシュ・ラインが、ターゲット・エージェントのキャッシュ・メモリ内に存在しない場合(330)、エージェントは、「共有」状態のキャッシュ・ラインを割り当てる(360)。割り当てられたキャッシュ・ラインは、外部エージェントによってプッシュされたデータで充填される(370)。外部エージェントからのデータがターゲット・エージェントのキャッシュに格納されたとき(350または370)、データは「共有」状態に格納され、ターゲット・エージェントの各々のために利用可能となる。
[0030] 図4は、ライトスルー・コヒーレンシ・プロトコルを使用して、システム内にキャッシュ・メモリを有するマルチプル・ターゲット・プロセッサへ全てのキャッシュ・ラインをプッシュする技術の一実施例のプローチャートである。本実施例において、プッシュ要求は、システム内の各ターゲット・エージェント(例えば、プロセッサ)に送られる(400)。本実施例において、プッシュ要求は、システム内の各ターゲット・エージェント(例えば、プロセッサ)に送られる(300)。プッシュ要求の送信は、例えば、相互接続として共有バスを使用するマルチプロセッサ・システム内の全てのプロセッサへブロードキャスト・メッセージによって、あるいは、ポイント・ツー・ポイント相互接続の場合には各プロセッサへ個々のメッセージによって遂行される。
【0023】
要求が全てのターゲット・エージェントによって受け入れられない場合(410)、再試行手順が実行される(420)。全てのターゲット・エージェントが要求を受け入れた場合(410)、各ターゲット・エージェントは、プッシュされているキャッシュ・ラインがそのキャッシュ・メモリ内に存在するかどうかを判定する(430)。本実施例において、キャッシュ・ラインが存在する場合(430)、キャッシュ・ライン内の状態は「有効」状態のまま維持される(440)。キャッシュ・ラインは外部エージェントによってプッシュされるデータで上書きされる(450)。
【0024】
キャッシュ・ラインがターゲット・エージェントのキャッシュ・メモリ内に存在しない場合(430)、エージェントは、キャッシュ・ラインを「有効」状態に割り当てる(460)。割り当てられたキャッシュ・ラインは、外部エージェントによってプッシュされたデータで充満される(470)。外部エージェントからのデータが、ターゲット・エージェント内のキャッシュに格納されたとき(450または470)、データは「有効」状態に格納され、ターゲット・エージェントの各々に利用可能である。
【0025】
図5は、ライトスルーまたはライトバック・コヒーレンシ・プロトコルを使用するシステム内のメモリ・コントローラへ全てのキャッシュ・ラインをプッシュする技術の一実施例のフローチャートである。本実施例において、メモリ・コントローラは、システム内の全てのターゲット装置に送られたプッシュ要求を受け取る(500)。
【0026】
プッシュ要求の受け取りに応答して、メモリ・コントローラは、システム内の全てのターゲット装置がプッシュ要求を受け入れたかどうかを判定する(510)。全てのターゲット装置がプッシュ要求を受け入れた場合(510)、メモリ・コントローラによって、プッシュされたデータ・ラインは適切なメモリ位置に書き込まれる(530)。全てのターゲット装置がプッシュ要求を受け入れない場合(510)、再試行手順が実行される(520)。
【0027】
一部のキャッシュ・ラインのためのプッシュ動作の例
図6は、キャッシュ・メモリを有するマルチプル・ターゲット・プロセッサへの一部のキャッシュ・ラインをプッシュする技術の一実施例のフローチャートである。本実施例において、プッシュ要求は、システム内の各ターゲット・エージェント(例えば、プロセッサ)に送られる(600)。プッシュ要求の送信は、例えば、相互接続として共有バスを使用するマルチプロセッサ・システム内の全てのプロセッサへブロードキャスト・メッセージによって、あるいは、ポイント・ツー・ポイント相互接続の場合には各プロセッサへ個々のメッセージによって遂行される。
【0028】
要求が全てのターゲット・エージェントによって受け入れられない場合(605)、再試行手順が実行される(610)。全てのターゲット・エージェントが要求を受け入れる場合(605)、各ターゲット・エージェントは、プッシュされているキャッシュ・ラインがそのキャッシュ・メモリ内に存在するかどうかを判定する(620)。
【0029】
本実施例において、データ・ラインがターゲット・エージェントのキャッシュ・メモリ内に存在しない場合(620)、プッシュの試みは拒絶される(660)。エージェントは、メモリから対応するデータを読み取る(665)。取り出されたデータは、ターゲット・エージェント内に格納される(670)。
【0030】
本実施例において、データがターゲット・エージェントのキャッシュ・メモリ内に存在する場合(620)、ターゲット・エージェントは、データを含むキャッシュ・ラインがクリーン状態に格納されたかどうかを判定する(625)。ラインがクリーン状態に格納された場合、プッシュされた一部のラインのデータは、キャッシュ内に格納された既存のデータと併合される(630)。
【0031】
ラインがクリーン状態に格納されていない場合、ターゲット・エージェントは、プッシュの試みを拒絶する(640)。その後、ターゲット・エージェントはダーティ・キャッシュ・ライン内のデータをメモリに書き込む(645)。その後、キャッシュ・ラインの状態が、「共有」に更新される(650)。
【0032】
図7は、ライトスルーまたはライトバック・コヒーレンシ・プロトコルを使用するシステム内のメモリ・コントローラへ一部のキャッシュ・ラインをプッシュする技術の一実施例のフローチャートである。本実施例において、メモリ・コントローラは、システム内の全てのターゲット装置に送られたプッシュ要求を受け取る(700)。
【0033】
プッシュ要求の受け取りに応答して、メモリ・コントローラは、システム内の全てのターゲット装置がプッシュ要求を受け入れたかどうかを判定する(710)。全てのターゲット装置がプッシュ要求を受け入れた場合(710)、メモリ・コントローラによって、プッシュされた一部のキャッシュ・ラインは適切なメモリ位置に書き込まれる(730)。全てのターゲット装置がプッシュ要求を受け入れない場合(710)、再試行手順が実行される(720)。
【0034】
本明細書において「一実施例」または「ある実施例」と称する場合は、本実施例に関して記述された特定の機能、構造、または特性が、本発明の少なくとも一実施例に含まれることを意味する。本明細書中の多くの箇所において「一実施例において」という語句が用いられるが、必ずしも全てが同じ実施例に関するものではない。
【0035】
本発明はいくつかの実施例について記述されているが、当業者は、本発明が記述された実施例に限定されるものではなく、添付の請求項の思想および範囲内において、修正および変更して実施できることを認識するであろう。したがって、本明細書は、限定的ではなく、例示であると解すべきである。
【図面の簡単な説明】
【0036】
【図1】コンピュータ・システムの一実施例のブロック図である。
【図2】外部エージェントからのプッシュ動作の概念図である。
【図3】ライトバック・コヒーレンシ・プロトコルを使用して、全てのキャッシュ・ラインをシステム内にキャッシュ・メモリを有するマルチプル・ターゲット・プロセッサへプッシュする技術の一実施例のフローチャートである。
【図4】ライトスルー・コヒーレンシ・プロトコルを使用して、全てのキャッシュ・ラインをシステム内にキャッシュ・メモリを有するマルチプル・ターゲット・プロセッサへプッシュする技術の一実施例のフローチャートである。
【図5】ライトスルーまたはライトバック・コヒーレンシ・プロトコルを使用して、全てのキャッシュ・ラインをシステム内のメモリ・コントローラへプッシュする技術の一実施例のフローチャートである。
【図6】キャッシュ・メモリを有するマルチプル・ターゲット・プロセッサへ一部のキャッシュ・ラインをプッシュする技術の一実施例のフローチャートである。
【図7】ライトスルーまたはライトバック・コヒーレンシ・プロトコルを使用して、全てのキャッシュ・ラインをシステム内のメモリ・コントローラへプッシュする技術の一実施例のフローチャートである。

【特許請求の範囲】
【請求項1】
1またはそれ以上のプロセッサに、前記1またはそれ以上のプロセッサの外部にあるエージェントからデータをプッシュするための要求を送る段階と、
前記1またはそれ以上のプロセッサの各々が、前記要求を受け入れたかどうかを判定する段階と、
前記エージェントからプッシュされた前記データに対応するデータを有する前記1またはそれ以上のプロセッサの各々に対して、いまだクリーン状態にない場合には、前記対応するデータの状態をクリーン状態に設定し、前記エージェントからプッシュされた前記データで前記対応するデータを上書きする段階と、
前記エージェントからプッシュされた前記データに対応するデータを有しない前記1またはそれ以上のプロセッサの各々に対して、前記エージェントからプッシュされた前記データをクリーン状態に格納する段階と、
から構成されることを特徴とする方法。
【請求項2】
1またはそれ以上のプロセッサに送る段階は、マルチプロセッサ・システム内の各プロセッサに前記要求を送る段階を含む段階を特徴とする請求項1記載の方法。
【請求項3】
1またはそれ以上のプロセッサに送る段階は、マルチプロセッサ・システム内のプロセッサのサブセットに前記要求を送る段階を含むことを特徴とする請求項1記載の方法。
【請求項4】
前記エージェントは、ダイレクト・メモリ・アクセス(DMA)装置を含むことを特徴とする請求項1記載の方法。
【請求項5】
前記エージェントは、デジタル信号プロセッサ(DSP)を含むことを特徴とする請求項1記載の方法。
【請求項6】
前記クリーン状態は、ライトバック・キャッシュ・コヒーレンシ・プロトコルを使用するマルチプロセッサ・システムにおける「共有」状態を含むことを特徴とする請求項1記載の方法。
【請求項7】
前記クリーン状態は、ライトスルー・キャッシュ・コヒーレンシ・プロトコルを使用するマルチプロセッサ・システムにおける「有効」状態を含むことを特徴とする請求項1記載の方法。
【請求項8】
前記データは、全てのキャッシュ・ラインを含むことを特徴とする請求項1記載の方法。
【請求項9】
前記データは、一部のキャッシュ・ラインを含むことを特徴とする請求項1記載の方法。
【請求項10】
少なくとも1つのプロセッサと、
バスを介して前記少なくとも1つのプロセッサに結合され、前記少なくとも1つのプロセッサに、少なくとも1つのプロセッサへデータをプッシュするための要求を送り、かつ、前記要求を受け取る前記少なくとも1つのプロセッサの各々が前記要求を受け入れたかどうかを判定するバス・エージェントと、から構成され、
プッシュされるべき前記データに対応するデータを有する各プロセッサに対して、前記プロセッサは、いまだクリーン状態でない場合には、前記対応するデータの状態をクリーン状態に設定し、前記対応するデータを前記プッシュされたデータで上書きし、プッシュされるべき前記データに対応するデータを有しない各プロセッサに対して、前記プッシュされたデータをクリーン状態に格納する、
ことを特徴とするシステム。
【請求項11】
前記少なくとも1つのプロセッサは、マルチプロセッサ・システム内の各プロセッサから成ることを特徴とする請求項10記載のシステム。
【請求項12】
前記少なくとも1つのプロセッサは、マルチプロセッサ・システム内のプロセッサのサブセットから成ることを特徴とする請求項10記載のシステム。
【請求項13】
前記バス・エージェントは、ダイレクト・メモリ・アクセス(DMA)装置を含むことを特徴とする請求項10記載のシステム。
【請求項14】
前記バス・エージェントは、デジタル信号プロセッサ(DSP)を含むことを特徴とする請求項10記載のシステム。
【請求項15】
前記クリーン状態は、ライトバック・キャッシュ・コヒーレンシ・プロトコルを使用するシステムにおける「共有」状態を含むことを特徴とする請求項10記載のシステム。
【請求項16】
前記クリーン状態は、ライトスルー・キャッシュ・コヒーレンシ・プロトコルを使用するシステムにおける「有効」状態を含むことを特徴とする請求項10記載のシステム。
【請求項17】
前記データは、全てのキャッシュ・ラインを含むことを特徴とする請求項10記載のシステム。
【請求項18】
前記データは、一部のキャッシュ・ラインを含むことを特徴とする請求項10記載のシステム。
【請求項19】
電子システム内のエージェントにおいて、
バス・インターフェイスと、
前記バス・インターフェイスに結合され、前記電子システム内の1またはそれ以上のプロセッサおよびメモリ・コントローラにデータをプッシュするための要求を送り、かつ、前記1またはそれ以上のプロセッサの各々および前記メモリ・コントローラが前記要求を受け入れたかどうか判定する制御回路であって、前記要求を受け入れる前記1またはそれ以上のプロセッサの各々および前記メモリ・コントローラに応答して、前記制御回路によって、データをクリーン状態に格納する指示を具備する前記データが、少なくとも前記1またはそれ以上のプロセッサのサブセットおよび前記メモリ・コントローラに送られる、制御回路と、
から構成されることを特徴とするエージェント。
【請求項20】
前記1またはそれ以上のプロセッサは、マルチプロセッサ・システム内の各プロセッサから成ることを特徴とする請求項19記載のエージェント。
【請求項21】
前記1またはそれ以上のプロセッサは、マルチプロセッサ・システム内のプロセッサのサブセットから成ることを特徴とする請求項19記載のエージェント。
【請求項22】
前記クリーン状態は、ライトバック・キャッシュ・コヒーレンシ・プロトコルを使用するシステムにおける「共有」状態を含むことを特徴とする請求項19記載のエージェント。
【請求項23】
前記クリーン状態は、ライトスルー・キャッシュ・コヒーレンシ・プロトコルを使用するシステムにおける「有効」状態を含むことを特徴とする請求項19記載のエージェント。
【請求項24】
前記データは、全てのキャッシュ・ラインを含むことを特徴とする請求項19記載のエージェント。
【請求項25】
前記データは、一部のキャッシュ・ラインを含むことを特徴とする請求項19記載のエージェント。
【請求項26】
1またはそれ以上のプロセッサに、前記プロセッサの外部にあるエージェントからデータをプッシュするための要求を送る手段と、
前記プロセッサの各々が前記要求を受け入れたかどうかを判定する手段と、
前記エージェントからプッシュされるべき前記データに対応するデータを有する各プロセッサにおいて、いまだクリーン状態でない場合には、対応するデータの状態をクリーン状態に設定し、前記エージェントからプッシュされたデータで前記対応するデータを上書きする手段と、
前記エージェントからプッシュされるべき前記データに対応するデータを有しないプロセッサの各々に、前記外部にあるエージェントからプッシュされた前記データをクリーン状態に格納する手段と、
から構成されることを特徴とする装置。
【請求項27】
前記クリーン状態は、ライトバック・キャッシュ・コヒーレンシ・プロトコルを使用するシステムにおける「共有」状態を含むことを特徴とする請求項26記載の装置。
【請求項28】
前記クリーン状態は、ライトスルー・キャッシュ・コヒーレンシ・プロトコルを使用するシステムにおける「有効」状態を含むことを特徴とする請求項26記載の装置。
【請求項29】
前記データは、全てのキャッシュ・ラインを含むことを特徴とする請求項26記載の装置。
【請求項30】
前記データは、一部のキャッシュ・ラインを含むことを特徴とする請求項26記載の装置。
【請求項31】
ほぼ全方向性のアンテナと、
前記アンテナに結合された少なくとも1つのプロセッサと、
バスを介して前記少なくとも1つのプロセッサに結合され、1またはそれ以上のプロセッサの少なくともサブセットにデータをプッシュするための要求を送り、かつ、前記要求を受け取るプロセッサの各々が前記要求を受け入れたかどうかを判定するバス・エージェントと、から構成され、
プッシュされるべき前記データに対応するデータを有する各プロセッサに対して、前記プロセッサは、いまだクリーン状態でない場合には、前記対応するデータの状態をクリーン状態に設定し、前記対応するデータを前記プッシュされたデータで上書きし、プッシュされるべき前記データに対応するデータを有しない各プロセッサに対して、前記プッシュされたデータをクリーン状態に格納する、
ことを特徴とするシステム。
【請求項32】
前記複数のプロセッサの1またはそれ以上は、前記複数のプロセッサの各々を含むことを特徴とする請求項31記載のシステム。
【請求項33】
前記複数のプロセッサの1またはそれ以上は、前記複数のプロセッサのサブセットを含むことを特徴とする請求項31記載のシステム。
【請求項34】
前記バス・エージェントは、ダイレクト・メモリ・アクセス(DMA)装置を含むことを特徴とする請求項31記載のシステム。
【請求項35】
前記クリーン状態は、ライトバック・キャッシュ・コヒーレンシ・プロトコルを使用するシステムにおける「共有」状態を含むことを特徴とする請求項31記載のシステム。
【請求項36】
前記クリーン状態は、ライトスルー・キャッシュ・コヒーレンシ・プロトコルを使用するシステムにおける「有効」状態を含むことを特徴とする請求項31記載のシステム。
【請求項37】
前記データは、全てのキャッシュ・ラインを含むことを特徴とする請求項31記載のシステム。
【請求項38】
前記データは、一部のキャッシュ・ラインを含むことを特徴とする請求項31記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2008−503807(P2008−503807A)
【公表日】平成20年2月7日(2008.2.7)
【国際特許分類】
【出願番号】特願2007−516846(P2007−516846)
【出願日】平成17年6月21日(2005.6.21)
【国際出願番号】PCT/US2005/022230
【国際公開番号】WO2006/012198
【国際公開日】平成18年2月2日(2006.2.2)
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】