(57)【要約】コヒーレンシプローブネットワーク上で割り込みをルーティングするシステム、装置及び方法が開示される。コンピューティングシステムは、複数の処理ノードと、コヒーレンシプローブネットワークと、１つ以上の制御ユニットと、を含む。コヒーレンシプローブネットワークは、コヒーレントエージェント間でコヒーレンシプローブメッセージを搬送する。制御ユニットによって検出された割り込みは、コヒーレンシプローブメッセージと互換性を有するメッセージに変換され、コヒーレンシプローブネットワークを介してターゲット宛先にルーティングされる。割り込みが第１の符号化で生成され、コヒーレンシプローブメッセージが第２の符号化を有する。キャッシュサブシステムは、コヒーレンシプローブネットワークを介して受信したメッセージに埋め込まれた符号化に基づいて、受信したメッセージが割り込みメッセージであるかコヒーレンシプローブメッセージであるかを判別する。割り込みメッセージは、割り込みコントローラにルーティングされ、コヒーレンシプローブメッセージは、メッセージに埋め込まれたコヒーレンスプローブアクションフィールドに従って処理される。【選択図】図５
2021534511.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の処理ノードと、
制御ユニットと、
前記１つ以上の処理ノードと前記制御ユニットとの間でコヒーレンシプローブメッセージを伝達するように構成されたコヒーレンシプローブネットワークと、を備えるシステムであって、
前記制御ユニットは、
割り込みを検出したことに応じて、コヒーレンシプローブメッセージと互換性を有する割り込みメッセージを生成することと、
前記コヒーレンシプローブネットワークを介して、前記割り込みメッセージをターゲットへの経路に送信することと、
を行うように構成されている、
システム。
【請求項２】
前記制御ユニットは、
コヒーレンシプローブメッセージの第１の符号化を生成することと、
前記コヒーレンシプローブネットワークを介して送信されるコヒーレンシプローブメッセージの所定のフィールドに前記第１の符号化を埋め込むことと、
割り込みメッセージの第２の符号化を生成することであって、前記第２の符号化は前記第１の符号化と異なる、ことと、
前記コヒーレンシプローブネットワークを介して送信される割り込みメッセージの所定のフィールドに前記第２の符号化を埋め込むことと、
を行うように構成されている、
請求項１のシステム。
【請求項３】
前記割り込みメッセージは、応答を送信する必要がないことを示す符号化を応答フィールドに含む、
請求項１のシステム。
【請求項４】
前記システムは、１つ以上のキャッシュサブシステムを備え、各キャッシュサブシステムは、埋め込まれた符号化に基づいて、受信したメッセージがコヒーレンシプローブメッセージであるか割り込みメッセージであるかを判別するように構成されている、
請求項１のシステム。
【請求項５】
各キャッシュサブシステムは、前記受信したメッセージが割り込みメッセージであると判別したことに応じて、各ノードの複数のプロセッサコアに割り込みメッセージをブロードキャストするように構成されている、
請求項４のシステム。
【請求項６】
前記割り込みメッセージのフィールドは、前記コヒーレンシプローブメッセージのフィールドと一致するように揃えられている、
請求項１のシステム。
【請求項７】
前記制御ユニットは、割り込み配信インジケータを用いて前記割り込みメッセージのコヒーレンシプローブアクションフィールドを符号化するように構成されている、
請求項１のシステム。
【請求項８】
制御ユニットが、割り込みを検出したことに応じて、コヒーレンシプローブメッセージと互換性を有する割り込みメッセージを生成することと、
コヒーレンシプローブネットワークを介して、前記割り込みメッセージをターゲットへの経路に送信することであって、前記コヒーレンシプローブネットワークは、１つ以上の処理ノードと前記制御ユニットとの間でコヒーレンシプローブを搬送するように構成されている、ことと、を含む、
方法。
【請求項９】
コヒーレンシプローブメッセージの第１の符号化を生成することと、
前記コヒーレンシプローブネットワークを介して送信されるコヒーレンシプローブメッセージの所定のフィールドに前記第１の符号化を埋め込むことと、
割り込みメッセージの第２の符号化を生成することであって、前記第２の符号化は前記第１の符号化と異なる、ことと、
前記コヒーレンシプローブネットワークを介して送信される割り込みメッセージの所定のフィールドに前記第２の符号化を埋め込むことと、を含む、
請求項８の方法。
【請求項１０】
前記割り込みメッセージは、応答を送信する必要がないことを示す符号化を応答フィールドに含む、
請求項８の方法。
【請求項１１】
キャッシュサブシステムが、埋め込まれた符号化に基づいて、受信したメッセージがコヒーレンシプローブメッセージであるか割り込みメッセージであるかを判別することを含む、
請求項８の方法。
【請求項１２】
前記キャッシュサブシステムが、前記メッセージが割り込みメッセージであると判別したことに応じて、各ノードの複数のプロセッサコアに割り込みメッセージをブロードキャストすることを含む、
請求項１１の方法。
【請求項１３】
前記割り込みメッセージのフィールドは、前記コヒーレンシプローブメッセージのフィールドと一致するように揃えられている、
請求項８の方法。
【請求項１４】
割り込み配信インジケータを用いて、前記割り込みメッセージのコヒーレンシプローブアクションフィールドを符号化することを含む、
請求項８の方法。
【請求項１５】
複数のプロセッサコアと、
キャッシュサブシステムと、を備える装置であって、
前記装置は、
割り込みを検出したことに応じて、コヒーレンシプローブメッセージと互換性を有する割り込みメッセージを生成することと、
コヒーレンシプローブネットワークを介して、前記割り込みメッセージをターゲットデバイスへの経路に送信することと、
を行うように構成されており、
前記コヒーレンシプローブネットワークは、前記装置と１つ以上のコヒーレントエージェントとの間でコヒーレンシプローブを搬送するように構成されている、
装置。
【請求項１６】
前記装置は、
コヒーレンシプローブメッセージの第１の符号化を生成することと、
前記コヒーレンシプローブネットワークを介して送信されるコヒーレンシプローブメッセージの所定のフィールドに前記第１の符号化を埋め込むことと、
割り込みメッセージの第２の符号化を生成することであって、前記第２の符号化は前記第１の符号化と異なる、ことと
前記コヒーレンシプローブネットワークを介して送信される割り込みメッセージの所定のフィールドに前記第２の符号化を埋め込むことと、
を行うように構成されている、
請求項１５の装置。
【請求項１７】
前記割り込みメッセージは、応答を送信する必要がないことを示す符号化を応答フィールドに含む、
請求項１５の装置。
【請求項１８】
前記装置は、埋め込まれた符号化に基づいて、受信したメッセージがコヒーレンシプローブメッセージであるか割り込みメッセージであるかを判別するように構成されている、
請求項１５の装置。
【請求項１９】
前記装置は、前記受信したメッセージが割り込みメッセージであると判別したことに応じて、各ノードの複数のプロセッサコアに割り込みメッセージをブロードキャストするように構成されている、
請求項１８の装置。
【請求項２０】
前記割り込みメッセージのフィールドは、前記コヒーレンシプローブメッセージのフィールドと一致するように揃えられている、
請求項１５の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
概して、割り込み又は例外は、命令の実行を、現在実行している命令フローから別の命令フローに変更するイベントである。割り込みは、典型的には、プロセッサ又はプロセッサに結合されたデバイスによって生成される。典型的な割り込み処理メカニズムは、割り込まれるプロセッサのプログラム制御フローを、割り込みハンドラに変更する。ＣＰＵ割り込みへの入力／出力（Ｉ／Ｏ）デバイス及び中央処理装置（ＣＰＵ）は、概して、割り込みコントローラのプログラミング又は配信される割り込みのタイプに基づいて、コンピューティングシステム内の任意のＣＰＵスレッドに配信される必要がある。歴史的に、割り込みをコアに配信するには、サイドバンドワイヤがよく使用されていた。サイドバンドワイヤは、割り込みタイプ及び割り込みベクトルを各コアに配信するために、コア毎に専用的なワイヤである。しかしながら、サイドバンドワイヤは、コアの数が増加すると、サイドバンドワイヤのスケーリングが困難になり、割り込み配信専用のワイヤの数が非常に多くなる。
【０００２】
添付図面と併せて以下の説明を参照することによって、本明細書で説明する方法及びメカニズムの利点をより良好に理解することができる。
【図面の簡単な説明】
【０００３】
【図１】コンピューティングシステムの一実施形態のブロック図である。
【図２】コンピューティングシステムの別の実施形態のブロック図である。
【図３】コア複合体の一実施形態のブロック図である。
【図４】様々な実施形態による、コヒーレンシプローブメッセージ及び割り込みメッセージの例を示す図である。
【図５】コヒーレンシプローブネットワークを介して送信するメッセージを生成する方法の一実施形態を示す一般化されたフローチャートである。
【図６】メッセージがコヒーレンシプローブメッセージであるか割り込みメッセージであるかを判別する方法の一実施形態を示す一般化されたフローチャートである。
【図７】割り込みメッセージを生成する方法の一実施形態を示す一般化されたフローチャートである。
【図８】キャッシュサブシステムにおいて受信されたメッセージを処理する方法の一実施形態を示す一般化されたフローチャートである。
【発明を実施するための形態】
【０００４】
以下の説明では、本明細書に提示される方法及びメカニズムの十分な理解を提供するために、多数の具体的な詳細が示されている。しかしながら、当業者は、具体的な詳細無しに様々な実施形態が実施され得ることを認識するべきである。いくつかの例では、本明細書で説明するアプローチを曖昧にすることを回避するために、周知の構造、構成要素、信号、コンピュータプログラム命令及び技術が詳細に示されていない。説明を簡単且つ明確にするために、図面に示す要素は、必ずしも縮尺通りには示されていない。例えば、いくつかの要素の寸法は、他の要素に対して拡張されている場合がある。
【０００５】
コヒーレンシプローブネットワーク上で割り込みをルーティングする様々なシステム、装置及び方法が本明細書で開示される。一実施形態では、コンピューティングシステムは、少なくとも、複数の処理ノードと、コヒーレンシプローブネットワークと、１つ以上の制御ユニットと、を含む。コヒーレンシプローブネットワークは、コヒーレントエージェント間でコヒーレンシプローブメッセージを搬送する。制御ユニットによって検出された割り込みは、コヒーレンシプローブメッセージと互換性を有するメッセージに変換され、コヒーレンシプローブネットワークを介してターゲット宛先にルーティングされる。割り込みは、第１の符号化で生成され、コヒーレンシプローブメッセージは、第２の符号化を有する。キャッシュサブシステムは、コヒーレンシプローブネットワークを介して受信したメッセージに埋め込まれた符号化に基づいて、受信したメッセージが割り込みメッセージであるかコヒーレンシプローブメッセージであるかを判別する。割り込みメッセージは、割り込みコントローラ（複数可）にルーティングされ、コヒーレンシプローブメッセージは、メッセージに埋め込まれたコヒーレンスプローブアクションフィールドに従って処理される。
【０００６】
図１を参照すると、コンピューティングシステム１００の一実施形態のブロック図が示されている。一実施形態では、コンピューティングシステム１００は、少なくとも、コア複合体１０５Ａ〜１０５Ｎと、入力／出力（Ｉ／Ｏ）インタフェース１２０と、バス１２５と、メモリコントローラ（複数可）１３０と、ネットワークインタフェース１３５と、を含む。他の実施形態では、コンピューティングシステム１００は、他の構成要素を含み、及び／又は、コンピューティングシステム１００は、異なるように構成されている。一実施形態では、コア複合体１０５Ａ〜１０５Ｎの各々は、中央処理装置（ＣＰＵ）等の１つ以上の汎用プロセッサを含む。「コア複合体」は、本明細書では「処理ノード」又は「ＣＰＵ」とも呼ばれることに留意されたい。いくつかの実施形態では、１つ以上のコア複合体１０５Ａ〜１０５Ｎは、高度に並列なアーキテクチャを有するデータ並列プロセッサを含む。データ並列プロセッサの例は、グラフィックス処理ユニット（ＧＰＵ）及びデジタルシグナルプロセッサ（ＤＳＰ）等を含む。様々な実施形態では、コア複合体１０５Ａ〜１０５Ｎ内の各プロセッサコアは、割り込みコントローラと、１つ以上のレベルのキャッシュを有するキャッシュサブシステムと、を含む。一実施形態では、コア複合体１０５Ａ〜１０５Ｎの各々は、複数のプロセッサコア間で共有されるキャッシュ（例えば、レベル３（Ｌ３）キャッシュ）を含む。
【０００７】
メモリコントローラ（複数可）１３０は、コア複合体１０５Ａ〜１０５Ｎによってアクセス可能な任意の数及びタイプのメモリコントローラを表す。メモリコントローラ（複数可）１３０は、任意の数及びタイプのメモリデバイス（図示省略）に結合されている。例えば、メモリコントローラ（複数可）１３０に結合されたメモリデバイス（複数可）のメモリのタイプは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、又は、強誘電体ランダムアクセスメモリ（ＦｅＲＡＭ）等を含んでもよい。Ｉ／Ｏインタフェース１２０は、任意の数及びタイプのＩ／Ｏインタフェース（例えば、周辺機器相互接続（ＰＣＩ）バス、ＰＣＩ−Ｅｘｔｅｎｄｅｄ（ＰＣＩ−Ｘ）、ＰＣＩＥ（PCI Express）バス、ギガビットイーサネット（登録商標）（ＧＢＥ）バス、ユニバーサルシリアルバス（ＵＳＢ））を表す。様々なタイプの周辺デバイスは、Ｉ／Ｏインタフェース１２０に結合されてもよい。このような周辺デバイスは、ディスプレイ、キーボード、マウス、プリンタ、スキャナ、ジョイスティック又は他のタイプのゲームコントローラ、メディア記録デバイス、外部記憶装置、及び、ネットワークインタフェースカード等を含むが、これらに限定されない。
【０００８】
様々な実施形態では、コンピューティングシステム１００は、コンピュータ、ラップトップ、モバイルデバイス、ゲームコンソール、サーバ、ストリーミングデバイス、ウェアラブルデバイス、又は、様々な他のタイプのコンピューティングシステム若しくはデバイスの何れかである。コンピューティングシステム１００の構成要素の数は、実施形態毎に異なることに留意されたい。例えば、他の実施形態では、図１に示す数よりも多い又は少ない各構成要素が存在する。他の実施形態では、コンピューティングシステム１００は、図１に示されていない他の構成要素を含むことにも留意されたい。さらに、他の実施形態では、コンピューティングシステム１００は、図１に示す以外の方法で構成されている。
【０００９】
図２を参照すると、コンピューティングシステム２００の別の実施形態のブロック図が示されている。一実施形態では、システム２００は、制御ユニット２１０と、コヒーレンシプローブネットワーク２１５と、割り込みコントローラ２２０と、デバイス２２５Ａ〜２２５Ｎと、ノード２３０Ａ〜２３０Ｄと、を含む。一実施形態では、制御ユニット２１０は、コヒーレンスユニット内に配置されている。他の実施形態では、制御ユニット２１０は、様々な他のタイプの構成要素の何れかの一部である。或いは、別の実施形態では、制御ユニット２１０は、スタンドアロンの構成要素である。デバイス２２５Ａ〜２２５Ｎは、割り込みコントローラ２２０を介して制御ユニット２１０に接続された任意の数及びタイプの周辺デバイス又は入力／出力（Ｉ／Ｏ）デバイスを表す。
【００１０】
一実施形態では、システム２００は、システムオンチップ（ＳｏＣ）である。他の実施形態では、システム２００は、様々な他のタイプのコンピューティングシステムの何れかである。ノード２３０Ａ〜２３０Ｄは、任意の数及びタイプの処理ノードを表す。ノード２３０Ａ〜２３０Ｄの各々は、任意の数のプロセッサコア２４５Ａ〜２４５Ｎ，２５０Ａ〜２５０Ｎ，２５５Ａ〜２５５Ｎ，２６０Ａ〜２６０Ｎを含む。４つのノード２３０Ａ〜２３０Ｄが図２のシステム２００に示されているが、これは、説明のために示されているに過ぎない。システム２００に含まれるノードの数は、実施形態毎に異なることを理解されたい。他の実施形態では、システム２００は、他の構成要素を含み、及び／又は、他の適切な方法で構成されている。
【００１１】
一実施形態では、システム２００は、プロセッサコア又はデバイスが別のコア又はデバイスによって修正されるデータに同時にアクセスしないことを保証するために、メモリコヒーレンシプロトコルを実施する。メモリコヒーレンシプロトコルに準拠するために、システム２００のコア及びデバイスは、コヒーレンシプローブネットワーク２１５を介してコヒーレンシメッセージ（例えば、コヒーレンシプローブメッセージ及びプローブ応答）を送信する。したがって、コヒーレンシプローブネットワーク２１５は、システム２００のコヒーレントエージェント間でコヒーレンシプローブメッセージ及びプローブ応答を搬送するように設計されている。コヒーレンシプローブメッセージは、特定のメモリ位置に関連するデータのコヒーレンシ状態をシークするメッセージである。プローブ応答は、通常、コヒーレンシプローブメッセージを生成したコヒーレントエージェントに送り返される。プローブ応答は、参照されたデータのコヒーレンシ状態を示し、プローブに応じてデータを転送し、又は、プローブに応じて他の情報を提供する。典型的には、コヒーレンシプローブネットワーク２１５は、コヒーレンシプローブメッセージ及びプローブ応答のみを搬送する。しかしながら、システム２００では、コヒーレンシプローブネットワーク２１５は、コア２３０Ａ〜２３０Ｄのうち１つ以上をターゲットとして割り込みを搬送する。これにより、割り込みが、システム２００内の複数の構成要素に及ぶ専用の低レイテンシネットワークを使用することから利益を得ることを可能にし、任意の数のスレッドにスケーラブルである。
【００１２】
様々な実施形態では、デバイス２２５Ａ〜２２５Ｎの各々は、割り込みコントローラ２２０によって検出された割り込み信号をアサートすることによって、割り込みを生成することが可能である。割り込み信号を検出したことに応じて、割り込みコントローラ２２０は、宛先識別子、配信モード、割り込みベクトル、又は、他の適切な情報等の情報を有する割り込みメッセージを生成する。次に、割り込みコントローラ２２０は、割り込みメッセージを制御ユニット２１０に伝達する。一実施形態では、制御ユニット２１０は、割り込みメッセージを、特別な符号化を用いてコヒーレンシプローブメッセージに変換し、次いで、制御ユニット２１０は、コヒーレンシプローブネットワーク２１５を介して、特別に符号化されたコヒーレンシプローブメッセージを１つ以上のターゲットに伝達する。
【００１３】
コヒーレンシプローブネットワーク２１５を介した割り込みの転送を容易にするために、制御ユニット２１０は、割り込みを生成し、受信し、処理し、転送するためのロジックを含む。このロジックは、コヒーレンシプローブメッセージの通常処理も処理する。一実施形態では、制御ユニット２１０が割り込みを検出又は受信すると、制御ユニット２１０は、コヒーレンシプローブメッセージのフォーマットと互換性を有する割り込みメッセージを生成する。互換性を有するフォーマットで割り込みメッセージを生成することによって、コヒーレンシプローブネットワーク２１５が、コヒーレンシプローブメッセージと同様の方法で割り込みメッセージを搬送することができる。割り込みメッセージは、コヒーレンシプローブメッセージと互換性を有するが、他の構成要素がコヒーレンシプローブメッセージを割り込みメッセージと区別することを可能にする埋め込まれた符号化を含む。コヒーレントな互換性を有するフォーマットで割り込みメッセージを生成した後に、制御ユニット２１０は、コヒーレンシプローブネットワーク２１５を介して、割り込みメッセージを、割り込みのターゲットとされた１つ以上のノード２３０Ａ〜２３０Ｄに伝達する。一実施形態では、制御ユニット２１０は、コヒーレンシプローブネットワーク２１５を介して、割り込みメッセージを、全てのノード２３０Ａ〜２３０Ｄにブロードキャストする。別の実施形態では、制御ユニット２１０は、コヒーレンシプローブネットワーク２１５を介して、割り込みメッセージを、割り込みメッセージのターゲットとされたノード（複数可）のみに送信する。
【００１４】
一実施形態では、コヒーレンシプローブネットワーク２１５は、各ノード２３０Ａ〜２３０Ｄ内のキャッシュサブシステム２４０Ａ〜２４０Ｄに接続されている。各キャッシュサブシステム２４０Ａ〜２４０Ｄは、任意の数のキャッシュレベルを含む。例えば、一実施形態では、各キャッシュサブシステム２４０Ａ〜２４０Ｄは、レベル３（Ｌ３）キャッシュ及びレベル２（Ｌ２）キャッシュを含む。この実施形態では、各コアは、ローカルレベル１（Ｌ１）キャッシュを含む。他の実施形態では、各キャッシュサブシステム２４０Ａ〜２４０Ｄは、他のキャッシュレベルを含む。所定のキャッシュサブシステム２４０Ａ〜２４０Ｄがコヒーレンシプローブネットワーク２１５を介してメッセージを受信すると、所定のキャッシュサブシステム２４０Ａ〜２４０Ｄは、メッセージが割り込みメッセージであるかコヒーレンシプローブメッセージであるかを判別する。メッセージが割り込みメッセージである場合、所定のキャッシュサブシステム２４０Ａ〜２４０Ｄは、割り込みメッセージを、対応するコア（複数可）内の割り込みコントローラ（複数可）に送信する。システム２００に示されているように、ノード２３０Ａ〜２３０Ｄは、コア２４５Ａ〜２４５Ｎ，２５０Ａ〜２５０Ｎ，２５５Ａ〜２５５Ｎ及び／又は２６０Ａ〜２６０Ｎ内に割り込みコントローラ２４７Ａ〜２４７Ｎ，２５２Ａ〜２５２Ｎ，２５７Ａ〜２５７Ｎ及び／又は２６２Ａ〜２６２Ｎを含む。一実施形態では、割り込みメッセージを受信したことに応じて、所定のキャッシュサブシステム２４０Ａ〜２４０Ｄは、割り込みメッセージを、対応するノード内の全てのコアにブロードキャストする。別の実施形態では、割り込みメッセージを受信したことに応じて、所定のキャッシュサブシステム２４０Ａ〜２４０Ｄは、割り込みメッセージを、割り込みメッセージのターゲットとされたコアのみに送信する。コア（複数可）内の割り込みコントローラ（複数可）は、割り込みメッセージを検査し、ターゲットとされたコア（複数可）に送信される割り込みを生成する。
【００１５】
図３を参照すると、コア複合体３００の一実施形態のブロック図が示されている。一実施形態では、コア複合体３００は、４つのプロセッサコア３１０Ａ〜３１０Ｄを含む。他の実施形態では、コア複合体３００は、他の数のプロセッサコアを含む。「コア複合体」は、本明細書では、「処理ノード」、「ノード」又は「ＣＰＵ」とも呼ばれることに留意されたい。一実施形態では、コア複合体３００の構成要素は、（図１の）コア複合体１０５Ａ〜１０５Ｎ内に含まれる。
【００１６】
各プロセッサコア３１０Ａ〜３１０Ｄは、メモリサブシステム（図示省略）から取り出されたデータ及び命令を記憶するためのキャッシュサブシステムを含む。例えば、一実施形態では、各コア３１０Ａ〜３１０Ｄは、対応するレベル１（Ｌ１）キャッシュ３１５Ａ〜３１５Ｄを含む。また、各プロセッサコア３１０Ａ〜３１０Ｄは、対応するレベル２（Ｌ２）キャッシュ３２０Ａ〜３２０Ｄを含み、又は、対応するレベル２（Ｌ２）キャッシュ３２０Ａ〜３２０Ｄに結合されている。さらに、一実施形態では、コア複合体３００は、プロセッサコア３１０Ａ〜３１０Ｄによって共有されるレベル３（Ｌ３）キャッシュ３３０を含む。他の実施形態では、コア複合体３００は、他の数のキャッシュ及び／又は異なるキャッシュレベルの他の構成を有する他のタイプのキャッシュサブシステムを含んでもよいことに留意されたい。
【００１７】
Ｌ３キャッシュ３３０は、コヒーレンシプローブネットワーク３４０を介して、バス／ファブリックに結合されている。Ｌ３キャッシュ３３０は、コヒーレンシプローブネットワーク３４０を介して、コヒーレンシプローブ及び割り込みメッセージの両方を受信する。Ｌ３キャッシュ３３０は、コヒーレンシプローブ及び割り込みメッセージをＬ２キャッシュ３２０Ａ〜３２０Ｄに転送する。一実施形態では、Ｌ３キャッシュ３３０は、受信したコヒーレンシプローブ及び割り込みメッセージを全てのＬ２キャッシュ３２０Ａ〜３２０Ｄにブロードキャストする。別の実施形態では、Ｌ３キャッシュ３３０は、受信したコヒーレンシプローブ又は割り込みメッセージを、プローブメッセージ又は割り込みメッセージのターゲットとされたＬ２キャッシュ３２０Ａ〜３２０Ｄのみに転送する。この実施形態では、Ｌ３キャッシュ３３０は、ターゲットを判別するために、コヒーレンシプローブ及び割り込みメッセージを検査するロジックを含む。Ｌ３キャッシュ３３０からメッセージ受信すると、Ｌ２キャッシュ３２０Ａ〜３２０Ｄは、メッセージを検査して、メッセージが割り込みであるかコヒーレンシプローブであるかを判別する。Ｌ２キャッシュ３２０Ａ〜３２０Ｄは、処理するための割り込みメッセージを割り込みコントローラ３１７Ａ〜３１７Ｄの各々に転送する。Ｌ２キャッシュ３２０Ａ〜３２０Ｄは、埋め込まれたコヒーレンシプローブアクションフィールドに従って、コヒーレンシプローブを処理する。
【００１８】
図４を参照すると、コヒーレンシプローブメッセージ及び割り込みメッセージをハイブリッドメッセージフォーマットで符号化する例が示されている。表４００は、ハイブリッドメッセージフォーマットを使用して送信することができるタイプのメッセージの例を示す。表４００の左端の列は、表４００に示す２つの異なるタイプのメッセージ（コヒーレンシプローブメッセージ４１０Ａ及び割り込みメッセージ４１０Ｂ）を有するメッセージタイプ４１０を示す。他の実施形態では、他の数の異なるタイプのメッセージがハイブリッドメッセージフォーマットで符号化される。ハイブリッドメッセージフォーマットを使用することによって、割り込みメッセージ４１０Ｂを、コヒーレンシプローブメッセージ４１０Ａと同様にフォーマットすることができる。したがって、割り込みメッセージ４１０Ｂのフィールド又は場合によっては割り込みメッセージ４１０Ｂのフィールドの組み合わせは、コヒーレンシプローブメッセージ４１０Ａのフィールドに一致するように揃えられる。ハイブリッドメッセージフォーマットは、フィールドの数が実施形態毎に異なる任意の数のフィールドを含む。表４００に示すように、ハイブリッドメッセージフォーマットは、コヒーレンシプローブアクションフィールド４１５と、アドレスフィールド４２０と、応答フィールド４２５と、任意の数の他のフィールドと、を含む。
【００１９】
表４００の第１のエントリは、コヒーレンシプローブメッセージ４１０Ａの例を示している。コヒーレンシプローブメッセージ４１０Ａの場合、フィールド４１５は、コヒーレンシプローブアクションインジケータ４１５Ａにより符号化される。コヒーレンシプローブアクションインジケータ４１５Ａは、プローブアクションタイプに応じて、様々な異なる値の何れかと等しく設定されてもよい。割り込みメッセージ４１０Ｂの場合、フィールド４１５は、メッセージが割り込みであることを示す割り込み配信インジケータ４１５Ｂにより符号化される。一実施形態では、キャッシュサブシステム（例えば、図２のキャッシュサブシステム２４０Ａ）内の制御ロジックは、フィールド４１５を調べて、受信したメッセージがコヒーレンシプローブメッセージであるか割り込みメッセージであるかを判別する。
【００２０】
フィールド４２０は、コヒーレンシプローブメッセージ４１０Ａのターゲットとされた対応するメモリ位置のアドレスを指定する。割り込みメッセージ４１０Ｂの場合、フィールド４２０は、割り込みタイプインジケータ４２０Ｂを、ビットの第１のサブセットに記憶し、フィールド４２０は、ターゲットインジケータ４２０Ｃを、ビットの第２のサブセットに記憶する。言い換えると、アドレスフィールド４２０は、割り込みメッセージ４１０Ｂの割り込みタイプインジケータ４２０Ｂ及びターゲットインジケータ４２０Ｃの両方を保持するように再利用される。これは、割り込みタイプインジケータ４２０Ｂ及びターゲットインジケータ４２０Ｃの組み合わせがアドレスフィールド４２０Ａと同一のサイズであるため、可能である。割り込みタイプインジケータ４２０Ｂは、割り込みメッセージ４１０Ｂによって伝達される割り込みのタイプを記憶し、ターゲットフィールド４２０Ｃは、割り込みメッセージ４１０Ｂのターゲットを指定する。
【００２１】
フィールド４２５は、メッセージを処理した後に生成される応答のタイプを指定する。コヒーレンシプローブメッセージ４１０Ａの場合、フィールド４２５は、送信元に送り返す応答のタイプを指定する様々な応答インジケータ４２５Ａの値の何れかにより符号化される。割り込みメッセージ４１０Ｂの場合、応答フィールド４２５は、応答を送信元に送り返す必要がないことを示す無応答インジケータ４２５Ｂにより符号化される。他の実施形態では、ハイブリッドメッセージフォーマットは、他のフィールドを含む。例えば、別の実施形態では、ハイブリッドメッセージフォーマットは、割り込みハンドラのメモリ位置を記憶する割り込みベクトルフィールドを含む。ハイブリッドメッセージフォーマットについての他のタイプのフィールドが可能であり、考えられる。
【００２２】
図５を参照すると、コヒーレンシプローブネットワークを介して送信するメッセージを生成する方法５００の一実施形態が示されている。説明目的のために、この実施形態におけるステップ及び図６〜図８のステップが順番に示されている。しかしながら、説明する方法の様々な実施形態では、説明する要素の１つ以上が同時に実行され、図示した順序と異なる順序で実行され、又は、完全に省略されることに留意されたい。他の追加の要素も必要に応じて実行される。本明細書で説明する様々なシステム又は装置の何れかは、方法５００を実施するように構成されている。
【００２３】
ファブリック相互接続の制御ロジックは、ハイブリッドメッセージフォーマットのメッセージを受信する（ブロック５０５）。ハイブリッドメッセージフォーマットのメッセージを受信したことに応じて、制御ロジックは、メッセージがコヒーレンシプローブメッセージであるか割り込みメッセージであるかを判別する（ブロック５１０）。メッセージがコヒーレンシプローブメッセージであるか割り込みメッセージであるかを判別する方法の一例は、図６の方法６００に関する説明に記載されている。受信したメッセージが割り込みメッセージである場合（条件付きブロック５１５：「はい」）、制御ロジックは、割り込みメッセージからターゲットフィールドを取り出し、ターゲットフィールドは、ハイブリッドメッセージフォーマットのアドレスフィールドのサブセットである（ブロック５２０）。言い換えると、アドレスフィールドがＹビットの長さである場合、ターゲットフィールドはＸビットの長さである。ここで、ＸはＹ未満であり、Ｘ及びＹの両方は正の整数である。アドレスフィールドのサブセットであるターゲットフィールドの例は、図４の表４００に示されている。次に、制御ユニットは、コヒーレンシプローブネットワークを介して、割り込みメッセージを、ターゲットフィールドで指定されたデバイス（複数可）にルーティングする（ブロック５２５）。受信したメッセージがコヒーレンシプローブメッセージである場合（条件付きブロック５１５：「いいえ」）、制御ロジックは、コヒーレンシプローブメッセージからアドレスフィールドを取り出す（ブロック５３０）。次に、制御ロジックは、コヒーレンシプローブネットワークを介して、コヒーレンシプローブメッセージを、アドレスフィールドで指定されたアドレスに対応するデバイス（複数可）に転送する（ブロック５３５）。ブロック５２５，５３５の後に、方法５００は終了する。
【００２４】
図６を参照すると、メッセージがコヒーレンシプローブメッセージであるか割り込みメッセージであるかを判別する方法の一実施形態が示されている。制御ロジックは、コヒーレンシプローブネットワークを介してメッセージを受信する（ブロック６０５）。メッセージを受信したことに応じて、制御ロジックは、受信したメッセージからコヒーレンシプローブアクションフィールドを取り出す（ブロック６１０）。コヒーレンシプローブアクションフィールドが割り込み配信インジケータにより符号化されている場合（条件付きブロック６１５：「はい」）、制御ロジックは、受信したメッセージを割り込みメッセージとして処理する（ブロック６２０）。コヒーレンシプローブアクションフィールドがコヒーレンシプローブアクションインジケータにより符号化されている場合（条件付きブロック６１５：「いいえ」）、制御ロジックは、受信したメッセージをコヒーレンシプローブメッセージとして処理する（ブロック６２５）。言い換えると、メッセージのコヒーレンシプローブアクションフィールドが割り込み配信インジケータ以外の任意の値により符号化されている場合、制御ロジックは、受信したメッセージをコヒーレンシプローブメッセージとして処理する。ブロック６２０，６２５の後に、方法６００は終了する。
【００２５】
図７を参照すると、割り込みメッセージを生成する方法７００の一実施形態が示されている。制御ロジックは、割り込みを受信する（ブロック７０５）。実施形態に応じて、制御ロジックは、キャッシュサブシステム、コヒーレンスポイント又はコンピューティングシステム内の他の位置に配置されている。割り込みを受信したことに応じて、制御ロジックは、コヒーレンシプローブメッセージと互換性を有する割り込みメッセージを生成し、生成された割り込みメッセージのフィールドは、コヒーレンシプローブメッセージのフィールドと揃えられる（ブロック７１０）。次に、制御ロジックは、コヒーレンシプローブネットワークを介して、割り込みメッセージを、ターゲットとされた宛先に転送する（ブロック７１５）。ブロック７１５の後に、方法７００は終了する。
【００２６】
図８を参照すると、キャッシュサブシステムにおいて受信したメッセージを処理する方法８００の一実施形態が示されている。キャッシュサブシステムの制御ロジックは、コヒーレンシプローブネットワークを介してメッセージを受信する（ブロック８０５）。一実施形態では、制御ロジックは、Ｌ２キャッシュの一部である。他の実施形態では、制御ロジックは、キャッシュサブシステムの他のレベルに配置されている。メッセージを受信したことに応じて、制御ロジックは、メッセージがコヒーレンシプローブメッセージであるか割り込みメッセージであるかを判別する（ブロック８１０）。メッセージがコヒーレンシプローブメッセージであるか割り込みメッセージであるかを判別する一例は、図６の方法６００に記載されている。
【００２７】
メッセージが割り込みメッセージである場合（条件付きブロック８１５：「はい」）、制御ロジックは、メッセージからターゲットフィールドを取り出す（ブロック８２０）。次に、制御ロジックは、割り込みメッセージを、割り込みのターゲットとされたプロセッサコア（複数可）の割り込みコントローラ（複数可）にルーティングする（ブロック８２５）。別の実施形態では、制御ロジックは、割り込みメッセージを、ノード内の全てのプロセッサコアの割り込みコントローラにブロードキャストする。メッセージがコヒーレンシプローブメッセージである場合（条件付きブロック８１５：「いいえ」）、制御ロジックは、メッセージからコヒーレンシプローブアクションフィールド及びアドレスフィールドを取り出す（ブロック８３０）。次に、制御ロジックは、コヒーレンシプローブアクションフィールドで指定されたプローブアクションに従って、コヒーレンシプローブメッセージを処理する（ブロック８３５）。ブロック８２５，８３５の後に、方法８００は終了する。
【００２８】
様々な実施形態では、本明細書で説明した方法及び／又はメカニズムを実施するために、ソフトウェアアプリケーションのプログラム命令が使用される。例えば、汎用プロセッサ又は専用プロセッサによって実行可能なプログラム命令が考えられる。様々な実施形態では、このようなプログラム命令は、高レベルプログラミング言語で表すことができる。他の実施形態では、プログラム命令は、高レベルプログラミング言語からバイナリ、中間表現又は他の形式にコンパイルすることができる。或いは、ハードウェアの動作や設計を記述するプログラム命令が書き込まれてもよい。このようなプログラム命令は、例えばＣ等の高水準プログラミング言語によって表すことができる。或いは、例えばＶｅｒｉｌｏｇ等のハードウェア設計言語（ＨＤＬ）を使用することができる。様々な実施形態では、プログラム命令は、様々な非一時的なコンピュータ可読記憶媒体の何れかに記憶される。記憶媒体は、使用中にコンピューティングシステムによってアクセス可能であり、プログラム実行のためにコンピューティングシステムにプログラム命令を提供する。一般的に、このようなコンピューティングシステムは、少なくとも１つのメモリと、プログラム命令を実行するように構成された１つ以上のプロセッサと、を含む。
【００２９】
上述した実施形態は、実施形態の非限定的な例に過ぎないことを強調しておきたい。上記の開示が十分に理解されれば、多数の変形及び修正が当業者に明らかになるであろう。以下の特許請求の範囲は、このような変形及び修正の全てを包含するように解釈されることが意図される。
【図１】
2021534511.tif 000003
【図２】
2021534511.tif 000004
【図３】
2021534511.tif 000005
【図４】
2021534511.tif 000006
【図５】
2021534511.tif 000007
【図６】
2021534511.tif 000008
【図７】
2021534511.tif 000009
【図８】
2021534511.tif 000010
【国際調査報告】
2021534511.tif 000011
2021534511.tif 000012