JP2010079880A - ルートテーブルの動的更新 - Google Patents

ルートテーブルの動的更新 Download PDF

Info

Publication number
JP2010079880A
JP2010079880A JP2009160233A JP2009160233A JP2010079880A JP 2010079880 A JP2010079880 A JP 2010079880A JP 2009160233 A JP2009160233 A JP 2009160233A JP 2009160233 A JP2009160233 A JP 2009160233A JP 2010079880 A JP2010079880 A JP 2010079880A
Authority
JP
Japan
Prior art keywords
port
agent
message
node
logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009160233A
Other languages
English (en)
Other versions
JP5050009B2 (ja
Inventor
Stephen S Chang
エス. チャン、ステファン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2010079880A publication Critical patent/JP2010079880A/ja
Application granted granted Critical
Publication of JP5050009B2 publication Critical patent/JP5050009B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/021Ensuring consistency of routing table updates, e.g. by using epoch numbers

Abstract

【課題】インターコネクトアーキテクチャにおいて休止することなくルーティング情報を動的に修正する方法および装置を提供する。
【解決手段】各エージェント/ノードは、インターコネクトアーキテクチャにおいてターゲットエージェント/ノードに関するルーティング情報を保持している。ルーティング情報には、ルーティング優先度が含まれるとしてよい。ノードがホットリムーバルされる場合、当該ノードは隣接するノードに対してポートディセーブルメッセージを生成する。隣接するノードは、ディセーブルメッセージが受信されたポートをディセーブルして、完了メッセージを生成する。リムーバルされるべきノードは、完了を受け取るまでメッセージのルーティングを継続する。完了を受け取ると、対応するノードがディセーブルされる。
【選択図】図4

Description

本発明は、高速ポイントツーポイントインターコネクトリンクに関する。特に、ポイントツーポイントインターコネクトアーキテクチャにおけるルーティングに関する。
コンピュータは、進化するにつれて、単なる算術計算の領域にとどまることなく、多数のメディアアプリケーションおよび非メディアアプリケーションに対するメディアセンターにまでその機能が進んでいる。このため、コンピュータシステムには通常、多数の周辺デバイスまたは入出力デバイスが含まれている。また、半導体プロセスおよびコンピュータ設計の技術が高度化したことによって、コンピュータシステムを構成するトランジスタの数を増やすことができるようになり、各物理プロセッサの処理能力も大きくすることができるようになった。また同時に、複数の物理プロセッサが1つのシステム内に共存することができるようになった。従来であれば、このようなプロセッサおよびその他のデバイスは、コンピュータが新しい構成要素の初期化および処理を正しく実行できるように、電力をオフ状態にしてコンピュータシステムに追加されていた。
しかし、より近年になって、マシンのランタイム中に構成要素/デバイスをユーザが追加または削除できるような設計が登場した。このタイプの削除は、デバイス/構成要素の「ホットアッド(Hot Add)」または「ホットリムーバル(Hot Removal)」と呼ばれることが多い。しかし、構成要素のホットアッドおよびホットリムーバルは、システムに対する物理的な追加または削除に限定されない。実際には、オペレーティングシステム(OS)設計者といったソフトウェア設計者は、ソフトウェアの観点から見たホットアッドまたはホットリムーバルをもサポートしている。つまり、ホットリムーバルされたデバイスは、物理的にはまだ存在しているとしてもよいし、電力がオフにされた状態としてもよいし、ソフトウェアには認識されない状態としてもよいし、仮想的に削除されたとしてもよいし、または、これらの状態のうち任意の状態を組み合わせるとしてもよい。
集積回路が進化し、処理能力が高くなった結果、デバイス間のインターコネクトもまた進化して、高性能構成要素に適切な帯域幅を実現している。インターコネクトアーキテクチャのタイプの1つに、コヒーレンシリンクベースアーキテクチャがある。具体例を挙げると、アーキテクチャに含まれる構成要素はポイントツーポイントリンクを用いて結合され得るが、デバイス/エージェントは、互いにメッセージをルーティングするノードとみなされる。
現時点では、このようなタイプのインターコネクトアーキテクチャにおいて、構成要素、エージェント、および/または、ノードが、「ホットアッド」または「ホットリムーバル」されると、システム全体を停止して、ホットアッドまたはホットリムーバルされたデバイスを包含または解放するべく、ルーティング情報を更新する。このように停止または休止すると通常、現在のメッセージはすべてフラッシュされてしまう。これは、新しいルーティング情報が、メッセージ、システムの停止または休止、ベーシックインプットアウトプットソフトウェア(BIOS)といった外部のソフトウェアまたはファームウェアによるルーティングテーブルの更新について、ルーティングエラーを引き起こしてしまう場合があるためである。想定し得ることであるが、このようにエージェントを追加または削除するために休止させると、コストが高くなってしまう可能性があり、結果としてエンドユーザにおいてスピードが遅くなってしまう恐れがある。
例示を目的として本発明を図示するが、本発明は添付図面に示すものに限定されるわけではない。
プロトコルアーキテクチャの実施形態を示す図である。 ポイントツーポイントインターコネクトを用いてチップセットに結合されている複数のプロセッサを備えるシステムの実施形態を示す図である。 層状入出力(I/O)スタックを用いた双方向インターコネクトアーキテクチャの実施形態を示すブロック図である。 複数のポートに対応付けられているターゲットエントリを有するテーブルを保持するためのロジックを備える複数のエージェントの実施形態を示す図である。 エージェントのホットリムーバルの実施形態を示すプロトコル図/フローチャートである。 ターゲットエージェント用のポートをディセーブルするべくリターンサイクルを実施する実施形態を示すプロトコル図/フローチャートである。 エージェントのホットアッドの実施形態を示すプロトコル/フローチャートである。
以下に記載する説明では、本発明を十分に理解していただくことを目的として、特定のインターコネクトアーキテクチャの例、特定のメッセージ、特定のルーティングテーブル実装例、特定のインターコネクトアーキテクチャ層といった具体的且つ詳細な内容を数多く説明する。しかし、本発明を実施する上でこのような具体的且つ詳細な内容を利用する必要は必ずしもないことは当業者には明らかであろう。また、本発明を不必要にあいまいにすることを避けるべく、特定のインターコネクト層アーキテクチャの詳細な内容/ロジック、特定の関連のないメッセージおよびプロトコル、プロセッサおよびキャッシュの特定の動作の詳細な内容等、公知の構成要素または方法は詳細な記述を省略している。
本明細書に記載する方法および装置は、休止なしでルーティング情報を動的に修正することを目的とする。具体的には、ルーティング情報の動的な修正は主に、説明用のキャッシュ・コヒーレント・リンク・ベース・インターコネクト・アーキテクチャを参照しつつ説明する。キャッシュ・コヒーレント・リンク・ベース・インターコネクト・アーキテクチャは、以下でより詳細に説明する。しかし、インターコネクトアーキテクチャにおいてコヒーレンシを維持することなくルーティング情報を修正するための方法および装置は、これに限定されず、任意の公知のインターコネクトアーキテクチャにおいて実装されるとしてよい。
<説明用インターコネクトアーキテクチャの実施形態>
図1は、プロトコルアーキテクチャの実施形態を示す上位の簡略図である。一実施形態によると、プロトコルアーキテクチャは、通常のトランザクションが実行されている場合と同様に要求が競合する場合に、アーキテクチャ内でキャッシュ間のデータ整合性を維持するためのものである。また、一実施形態によると、プロトコルアーキテクチャは、各要求を前進(Forward Progress)させるので、各要求は満足させられて、回収/完了させられる。
プロトコルアーキテクチャは、任意の数のノードまたはエージェントを含んでよい。一実施形態によると、ノードは、内部キャッシュメモリ、外部キャッシュメモリ、および/または、外部メモリに対応付けられているプロセッサを含む。しかし、ノードまたはエージェントは、プロセッサ、メモリコントローラハブ、I/Oハブ、汎用コントローラハブ、I/Oデバイス、I/Oデバイスの集合、または、メモリにアクセス可能なその他の任意のデバイス/構成要素等、インターコネクトアーキテクチャにおける任意のデバイスまたは任意のデバイスの集合を意味するとしてよい。別の実施形態によると、他の電子システム(例えば、コンピュータシステム、携帯可能デバイス)と相互接続されている電子システムをノードとする。上記以外の種類のノードの構成を利用するとしてもよい。
図示されているように、アーキテクチャ100は、キャッシングノード/エージェント105および106と、ホームエージェント110−112とを備える。一実施形態によると、ホームエージェント110−112は、コヒーレントなメモリ空間の最終的なレポジトリであるメモリ位置を保護することを目的とする。つまり、エージェント110は、コヒーレントなメモリ空間のデータに関して、複数のオリジナル物理メモリ位置について責任を持つホームエージェントである。ホームエージェント110および112は、以下に挙げるタスクのうち任意の組み合わせを実行してよい。そのようなタスクには、キャッシングエージェント105および106についてキャッシュ状態の遷移をトラッキングすること、キャッシングエージェント105および106間でのコンフリクトを調整すること、メモリに対するインターフェースを提供すること、データおよび/または所有権を提供すること、および、このほかの任意の公知のホームエージェント関連のタスクがある。
一実施形態によると、キャッシングエージェント105および106は、キャッシュメモリに対応付けられているエージェントを含む。一例として、キャッシュメモリおよびキャッシングI/Oプロキシエンティティを有するプロセッサが挙げられる。キャッシングエージェント105および106は、以下に挙げるタスクおよびその他の任意のタスクのうち任意の組み合わせを実行してよい。そのようなタスクには、コヒーレントなメモリ空間に対して読み書き要求を実行すること、コヒーレントなメモリ空間からのデータのキャッシュされたコピーを保持すること、他のピアキャッシングエージェントにキャッシュされたコピーを供給すること、がある。キャッシングエージェントまたはキャッシングノードはまた、他のキャッシングエージェントに関連して、ピアエージェント/ノードとも呼ばれ得る。図1には具体的に図示されていないが、プロトコルアーキテクチャはさらに、キャッシング以外の機能を持つエージェントを備えるとしてよい。例えば、入出力(I/O)デバイスに代わってトランザクションに参加または目撃するI/Oハブをさらに備えるとしてよい。
一実施形態によると、キャッシングエージェント105および106、ならびにホームエージェント110−112は、データ整合性を維持すると共に、ネットワークファブリック101を介してメッセージを交換することによって、前進を実現する。一実施形態によると、ファブリック101は、ポイントツーポイントインターコネクトネットワークを介して、あるエージェント/ノードから別のエージェント/ノードへメッセージをトランスポートすることを支援する。図1は、基礎となるネットワークについてのキャッシュコヒーレントプロトコルを抽象的に示す図である。
一実施形態によると、インターコネクトアーキテクチャ100は、以下に挙げる同時係属中の出願に記載されているように、新規の特徴の任意の組み合わせを組み込むものとしてよい。例えば、米国特許第6,922,756号(発明の名称:「マルチノードシステムにおけるキャッシュコヒーレンシで利用されるフォワード状態」)では、フォワードキャッシュコヒーレンシ状態(F状態)を利用することを記載している。さらに、さまざまな状況におけるコヒーレンシプロトコルの例は、特許出願第10/833,963号(代理人整理番号P15925)(出願日:2004年4月27日、発明の名称:「2ホップのキャッシュコヒーレンシプロトコル」)、特許出願第10/833,965号(代理人整理番号P18890)(出願日:2004年4月27日、発明の名称:「メッセージングプロトコル」)、特許出願第10/833,977号(代理人整理番号P18891)(出願日:2004年4月27日、発明の名称:「キャッシュコヒーレンシプロトコル」)、特許出願第11/330,977号(代理人整理番号P22376)(出願日:2006年1月11日、発明の名称:「2ホップのソーススヌープベースのキャッシュコヒーレンシプロトコル」)、特許出願第11/331,301号(代理人整理番号P23106)(出願日:2006年1月11日、発明の名称:「2ホップのソーススヌープベースのメッセージングプロトコル」)において記載されている。
他の例を挙げると、特許出願第10/325,427号(代理人整理番号P13923)(出願日:2002年12月19日、発明の名称:「キャッシュコヒーレンシプロトコルに関する投機的分散型のコンフリクト解決方法」)、特許出願第10/326,234号(代理人整理番号P13984)(出願日:2002年12月19日、発明の名称:「マルチプロセッサシステムにおけるキャッシュコヒーレンシ用の階層ディレクトリ」)、特許出願第10/324,711号(代理人整理番号P13985)(出願日:2002年12月19日、発明の名称:「マルチプロセッサシステムにおけるキャッシュ階層の仮想階層モデル」)、特許出願第10/326,232号(代理人整理番号P13986)(出願日:2002年12月19日、発明の名称:「キャッシュコヒーレンシプロトコルについての非投機的分散型のコンフリクト解決方法」)がある。
上述した同時係属出願に記載された特徴は、本明細書に記載する実施形態に組み込まれるとしてよいことに注意されたい。しかし、本明細書に記載する実施形態は、それに限定されるものではなく、さらなる特徴を備えるとしてもよいと共に上述した特徴のうちいずれも備えない可能性もあるとしてよい。
図2は、ポイントツーポイントインターコネクトアーキテクチャを用いてチップセットに結合されている複数のプロセッサを備えるシステムの実施形態を示す図である。図2に示すシステムは複数のプロセッサを備えるとしてよいが、図示の便宜上、そのうち2つのみ、つまりプロセッサ205および210が図示されている。図示されているように、プロセッサ205および210はそれぞれ、2つの処理素子206および207、ならびに、211および212を有するが、プロセッサ205および210が有する処理素子の数は任意としてよい。
処理素子とは、実行状態またはアーキテクチャ状態等のプロセッサの状態を保持することが可能な、スレッドユニット、プロセスユニット、コンテキスト、論理プロセッサ、ハードウェアスレッド、コア、および/または、その他の任意の素子を意味する。つまり、一実施形態によると、処理素子は、ソフトウェアスレッド、オペレーティングシステム、アプリケーション等のコードに独立して対応付けられることが可能な任意のハードウェアを意味する。一例として、物理プロセッサは通常、コアまたはハードウェアスレッド等の処理素子を任意の数だけ備え得る集積回路を意味する。
コアとは通常、独立したアーキテクチャ状態を維持することが可能な集積回路に設けられているロジックを意味する。ここで、独立して維持されるアーキテクチャ状態はそれぞれ、少なくとも数個の専用実行リソースと対応付けられる。ハードウェアスレッドは、コアとは対照的に、これも物理スレッドと呼ばれることがあるが、独立したアーキテクチャ状態を維持することができる集積回路に設けられている任意のロジックを意味することが多く、この場合は、独立して維持される複数のアーキテクチャ状態は実行リソースに対するアクセスを共有している。このため、明らかなことであるが、複数のソフトウェアスレッド、例えば1つのシングルスレッドアプリケーションの複数の複製を、一実施形態によると、コアまたはハードウェアスレッド等の上述した処理素子のうち任意のものの組み合わせを含み得る複数の処理素子において並行して実行することができる。
さらに同図から分かるように、プロセッサ205および210は、リソース208および213を有する。リソース208および213は通常、レジスタ、ユニット、ロジック、ファームウェア、メモリ、および、コードを実行するためのリソース、または他のデバイスとのインターフェースとして機能するリソースを含む。上述したように、リソースの一部は、部分的または完全に処理素子専用として構成されるとしてよく、ほかは処理素子間で共有される。例えば、比較的小型のリソース、例えば、命令ポインタおよびリネームロジックは、物理スレッドについて複製するとしてよい。一部のリソース、例えば、リオーダ/リタイアメントユニットのリオーダバッファ、命令変換索引バッファ(ILTB)、ロード/格納バッファ、および、待ち行列は、パーティションに基づいて共有するとしてよい。その他のリソース、例えば、汎用内部レジスタ、ページ−テーブルベースレジスタ、低レベルのデータキャッシュ、データTLB、実行ユニット、および、アウト・オブ・オーダー・ユニットは、スレッド間で完全に共有され得る。これとは対照的に、コアは専用実行リソースを有するとしてよいが、第2レベルキャッシュ(L2)等のより高レベルのキャッシュの少なくとも一部を共有する。
一実施形態によると、リソース208および213は、任意の数のパイプラインステージを含むプロセッサパイプラインを有する。パイプラインステージの一般的な例を挙げると、命令ポインタステージ、フェッチステージ、デコードステージ、ドライブステージ、割り当てステージ、リネームステージ、待ち行列ステージ、リオーダステージ、スケジューリングステージ、ディスパッチステージ、実行ステージ、メモリアクセスステージ、および、レジスタアクセスステージがある。ここに列挙するステージは、プロセッサパイプラインステージの一例であって全てを網羅したものではないことに留意されたく、プロセッサ100は任意の公知のパイプラインステージを含むとしてよい。
プロセッサ205および210はそれぞれさらに、メモリ209および214に対するインターフェースとして機能するメモリコントローラまたはローカルメモリコントローラハブ(MCH)を有してよい。メモリ209および214は、ランダムアクセスメモリ(RAM)、キャッシュメモリ、フラッシュメモリ、または、その他のメモリデバイス等、任意のメモリデバイスを含む。一実施形態によると、メモリ214がより高いレベルのキャッシュメモリを有して、リソース213が低いレベルのキャッシュメモリを有する。別の実施形態によると、メモリ209はプロセッサ205に対応付けられたダイナミックランダムアクセスメモリ(DRAM)を有し、プロセッサ205はDRAM209からのデータをキャッシュするキャッシュメモリを有する。これは実施形態例であることに留意されたく、メモリ209および214は任意のタイプのメモリデバイスを含み得る。
メモリ209および214が、プロセッサ205および210内に設けられているキャッシュメモリ、または、図示されている例のように、プロセッサ205および210に対して外部に設けられているキャッシュメモリを含む一実施形態によると、プロセッサ205および210は、ピアキャッシングノードと同様にホームノードにもなり得る。例えば、トランザクションがメモリ209内のメモリ位置を参照している場合、メモリ209の担当であるエージェント、つまりプロセッサ205が、当該トランザクションおよび当該メモリ位置に対してホームエージェントと決定される。同様に、あるトランザクションが別のメモリ位置、例えばメモリ214内の位置を参照している場合、プロセッサ205はピアキャッシングエージェントと決定される。
図から分かるように、ポイントツーポイントリンク220−224は、ポイントツーポイント形式で構成要素同士を結合させる。一実施形態によると、物理リンク220−224はそれぞれ、双方向差動信号方式用インターコネクト、例えば図3を参照しつつ後述する物理層に対応付けられている物理リンクを含む。この結果、プロセッサ205および210ならびにチップセット230は、互いに直接通信することができる。
チップセット230は通常、例えば入出力(I/O)ハブに接合されているメモリコントローラハブ等、複数の集積回路に与えられる一般的な総称である。しかし、各エージェントがメモリに対するインターフェースとして機能するメモリコントローラハブのバージョンを1つ有している一実施形態では、チップセット230とはI/Oハブまたはその他のコントローラハブを意味する。一実施形態によると、チップセット230は、上述したように、トランザクションに参加または目撃するキャッシングを行わないエージェントである。しかし、チップセット230はこれに限定されず、他の実施形態と同様に、チップセット230は、キャッシュメモリを有するキャッシングエージェント、および/または、データ用のオリジナルメモリ位置レポジトリを有するメモリを含むホームエージェントである。
図示されているように、チップセット230はさらに、複数のインターコネクトデバイスおよびI/Oデバイスに対してインターフェースとして機能する。インターコネクトデバイスおよびI/Oデバイスの例を挙げると、ペリフェラルコンポーネントインターコネクト(PCI)またはPCIエクスプレス(PCI−E)デバイス261、インテグレーテッドデバイスエレクトロニクス(IDE)またはアドバンスドトランスファーアタッチメント(ATA)デバイス262、ユニバーサルシリアルバス(USB)デバイス263、ローカルエリアネットワーク(LAN)またはワイヤレスLAN(WLAN)デバイス264、オーディオデバイス265、および、本明細書に記載するI/Oデバイスを接合するための別のインターコネクトアーキテクチャをさらに有するその他のI/Oデバイス266等がある。
図3は、積層型インターコネクトスタックを用いている双方向インターコネクトアーキテクチャの実施形態を示すブロック図である。物理層302等の図3の層は、物理層302aおよび物理層302bのように、複数の異なるエージェントによって実装され得る一の一般的な層を含む。図示されているように、インターコネクトスタックは5つの層に分割されており、そのうち1以上の層は設計実装に応じて任意で設けるとしてよい。例えば、一実施形態によると、ルーティング層304はリンク層303の機能に埋め込まれるので、一実施形態によると、ルーティング層は独立した識別可能な層ではない。
一実施形態によると、物理層302は、物理媒体における情報の電気的な転送を担当する。例えば、リンク層エンティティ303aと303bとの間で、物理ポイントツーポイントリンクを用いる。説明用の例を挙げると、物理リンクは、双方向差動信号対351および352を含む差動信号方式を含む。ここで、物理層は、電気サブブロックと論理サブブロックとに論理的に分割される可能性があり、このようにして物理層は、スタックの残りの部分を情報の電気的転送から切り離し、リンク層303と通信する。
一実施形態によると、リンク層303は、スタックの上方の層から物理層302を抽象化して、接続されたエージェント/エンティティ間での信頼性の高いデータ転送およびフロー制御、ならびに、物理チャネル/インターフェースを仮想化して複数の仮想チャネルおよびメッセージクラスを取得すること等、リンク関連のサービスを提供する。ここで、仮想チャネルは、スタックの上方の層によって用いられる複数の仮想ネットワークと見なされてもよい。例えば、プロトコル層306は、リンク層303が提供する抽象化に基づいて、プロトコルメッセージをメッセージクラス、および1以上の仮想チャネルにマッピングし得る。
一実施形態によると、ルーティング層304は、ソースからデスティネーションまでパケットをルーティングするための柔軟性の高い方法を提供する。上述したように、非常に単純なトポロジーでは、ルーティング層304は、明示的ではなく、リンク層303の機能に組み込まれるとしてよい。例えば、ルーティング層304は、リンク層303の抽象化に基づいて、パケットをルーティングするための<ポート、仮想ネットワーク>対を特定してよい。
一実施形態によると、ルーティング層304、またはルーティング層304の機能を介してルーティング層304に対応付けられているロジックは、ルーティングテーブル等のルーティング情報を保持する。具体例を挙げると、ルーティングテーブルは、インターコネクトアーキテクチャの各ターゲットのエントリを含むとしてよい。ここで、エントリは、ターゲットエージェントに対応付けられているパケットをルーティングするための1または複数のポート等、任意の種類の情報を保持するとしてよい。ルーティングテーブルと対応する情報はより詳細に後述する。
一実施形態によると、トランスポート層305は、エンドツーエンドの信頼性の高い送信サービスを提供する。ルーティング層304と同様に、トランスポート層305も、設計実装によっては任意で設けられる。一例を挙げると、トランスポート層305は、ルーティング層304のサービスに基づいて、プロトコル層306に対して信頼性の高い送信サポートを提供する。一実施形態によると、インターコネクトアーキテクチャ内において、構成要素のサブ群はトランスポート層305を含む。このため、この構成要素のサブ群は、トランスポート層305に関するパケットのサブフィールドを定義し、その他の構成要素はこれらのサブフィールドを定義しない可能性がある。
一実施形態によると、プロトコル層306は、キャッシュコヒーレンス、オーダリング、ピアツーピア通信、割り込みドライバ等、ノード/エージェント間でのより高いレベルの通信プロトコルを実装する。つまり、プロトコル層306は、ホームノード、ピアノード、キャッシングノード、およびキャッシングを行わないノード等のノードまたはエージェントに対して、許可されるメッセージ、要求、応答、位相、コヒーレンス状態等を定義する。メッセージの例、例えばホームノードメッセージ、スヌープメッセージ、応答メッセージ等を以下に説明する。
層および対応付けられているロジックはどのように結合させるとしてもよいことに留意されたい。例えば、プロトコルロジックは物理層、つまり送信ロジックまたは受信ロジックに結合されるとも言える。ここで、図3から分かるように、一実施形態によると、プロトコルロジックは物理層ロジックに直接結合されなくてもよく、他の層のロジックを介して結合されるとしてもよい。また、一実施形態によると、インターコネクトスタックは、適切なキャッシュコヒーレンス動作を開始するべく、キャッシュ制御ロジックまたはキャッシュメモリロジックのような内部構成要素ロジックに結合される。
<MESIFプロトコルの実施形態の概要>
一実施形態によると、基本的な、修正、排他、共有、無効、フォワード(Modified Exclusive Shared Invalid Forward:MESIF)プロトコルは、単一の直列化バスの制約を受けることなく、スヌーププロトコルと同様のプロトコルを提供する。スヌープキャッシュプロトコルと同様に、MESIFは、キャッシュされたデータのコピーを持つノードに基づいてコヒーレンスを維持する。同期が取られた集中型ブロードキャストではなくポイントツーポイントリンクを用いることによって、タイムワープの問題、つまり、イベントが、複数の異なるノードの観点とは異なる順序で発生するように見えるという問題が生じる。一例を挙げると、MESIFプロトコルは、タイムワープによって生じ得るエラーを認識することによってタイムワープの問題に対処して、この問題に対してプロトコルまたはソフトウェアによるソリューションを提供する。
ホームノードは通常、データのキャッシュされていないコピーと対応付けられる。このため、ホームノードは、当該ホームノードに対応付けられたデータに関連するトランザクションに参加するとしてよい。しかし、ホームノードは、トランザクションに対応付けられた「クリティカルパス」に含まれる必要はなく、むしろホームノードは、コンフリクトまたはタイムワープの問題を解決するべくトランザクションに介入するとしてよい。一実施形態によると、MESIFは、本質的に同時にブロードキャストが発生するので、スヌーププロトコルに対応付けられている低レイテンシを実現しつつ、ある場合には、可能な限り小さいレイテンシで、つまり、要求−応答の往復が一回行われ、データのキャッシュ可能なコピーを取得する。
一実施形態によると、MESIFプロトコルに関連する基本的なトランザクションは、ホームノードおよび全てのピアノードに最初の要求をブロードキャストすることを含む。コピーが、E、FまたはMコヒーレンシ状態でキャッシュされていれば、応答に含まれる。そして第2のメッセージがホームノードに送られて、要求が満足させられたことを知らせる。要求されたラインがキャッシュされていない場合、または、S状態のコピーのみが存在する場合、ホームノードに送られる第2の要求は、先行する要求を確認するために用いる。先行する要求は、この時点までに、ホームノードが対応するメモリからフェッチしてきているとしてよい。どちらの場合でも、ホームノードは、同期およびコンフリクト解決を目的として、第2の要求(および、第1の要求にも応答し得る。しかし、組み合わせる場合もある)に応答する。ホームノードは1以上のキャッシュを有するとしてよく、このため、その他の任意のノードとまったく同様に最初の要求に応答するとしてよいことに留意されたい。
一実施形態によると、コンフリクトは分散させることによって処理される。タイムワープの問題によって、個々の要求は任意に決められる長期間にわたって遅延されるので、コンフリクトを検出することが難しくなる。しかし、要求を行った後で各ノードがコンフリクトについて監視していれば、コンフリクトが検出される。複数のノードがコンフリクトを検出し得るが、一例を挙げると、複数のノードのうち少なくとも1つがコンフリクトを検出する。このため、一実施形態によると、ノードからの応答はコンフリクト情報を含んでいる場合がある。
一実施形態によると、応答からデータのコピーを受信するノードは、受信直後からデータを内部で利用することができるが、確認を受信するまでは、データの利用をシステムのほかの構成要素に対して可視状態、つまり、グローバルに可視状態にはしない。確認はさらに、要求元のノードはコピーを別のノードに転送しなければならない、という命令を含むとしてよく、当該ノードを自身のキャッシュから離脱させるとしてよい。
最終的に、あるノードは、キャッシュされたデータを供給することによって別のノードからの要求に応答すると、一実施形態では、ホームノードから、当該ノードがデータを転送したという事実を認める応答を受信するまで、同じキャッシュラインについて受信するほかの要求を保留する。このため、確実に全てのノードが(おそらく書き込み可能な)キャッシュラインの同じ転送順序を観察することになる。
上述したように、ホームノードは、キャッシュされていないデータのレポジトリであるが、プロセッサおよびキャッシュを備えるとしてよい。ここで、ホームノードのプロセッサでキャッシュミスが発生すると、ホームノードは、他の全ての(ピア)ノードに対して要求をブロードキャストして、ホームノードに到達する任意のその他の要求と同様に、内部で要求を処理する。尚、これは特別な場合であって、ホームノードは自身に(ホームノード)メッセージを明示的に送信しない。さらに、ローカルにキャッシュされているデータに対して外部から要求が届くと、ホームノードは適切に応答する。
開示されているメッセージプロトコルでは、コヒーレンス(キャッシュおよびホーム)エージェント、非キャッシングエージェント、およびその他のエージェント(メモリコントローラ、プロセッサ等)の間で許可されるメッセージの一群を定義する。コヒーレンスプロトコルは、アルゴリズムにおいて単語および文法としてメッセージを利用して、コヒーレンスの思想を表現する。このアルゴリズムは、キャッシングエージェント間の相互作用について、理に適った方法で要求を指示し、コンフリクトを解決し、さらに記載している。しかし、MESIFプロトコルを先に説明したが、MESIFキャッシュコヒーレンスプロトコルは利用が求められない。例えば、フォワード状態は利用されないとしてもよく、この結果、公知のMESIプロトコルが利用されることになる。さらに、上述の説明はMESIFプロトコルについての実施形態例の概要を含むものであることに留意されたい。このため、上述したさまざまな構成要素は、別の実施形態では異なる構成としてもよい。メッセージングおよび・またはコヒーレンスプロトコルで利用されるメッセージの一例のリストを以下で説明するが、以下の記載内容は全てを網羅しているわけではない。
図4は、複数のポートに対応付けられているターゲットエントリを持つテーブルを保持するロジックを備える複数のエージェントの実施形態を示す図である。上述したように、エージェント410、420、430、440、450および460(410−460)は、ノードとも呼ばれるが、プロセッサ、コントローラハブ、I/Oデバイス、またはその他の任意の公知のエージェント/ノード等、どのようなスタイルのエージェントまたはノードであってもよい。
一実施形態によると、エージェント410−460は、リンクベースのコヒーレンスインターコネクトアーキテクチャに含まれている。図示されているように、エージェント410−460は、ポイントツーポイント形式で互いに結合されており、エージェント410は、エージェント450宛てのメッセージをポート411からエージェント420に送信し、エージェント420は当該メッセージをポート421で受信して、ポート422を介してエージェント450に当該メッセージをルーティングする。以下で説明するが、エージェント450までの経路は、エージェント460、440を介して、420から450へと向かう経路等、他にも複数存在してよい。ルーティング情報を動的に修正する方法は主に、ポイントツーポイントリンクアーキテクチャを参照しつつ説明するが、本明細書に記載する方法および装置はこれに限定されない。
さらに、一実施形態によると、エージェント410−460の少なくとも一部は、上述したインターコネクトスタックと同様のインターコネクトスタックを実装する。尚、インターコネクトスタックの層がロジックで実装されている一部の実施形態によると、層の境界は明確に定義されておらず、部分的に重複している可能性がある。例えば、上述したように、ルーティング層ロジックは、リンク層ロジック内またはリンク層ロジックと部分的に重複して実装され得る。
一実施形態によると、エージェント410−460のそれぞれは、ロジック415、425、435、445および445といった、ルーティング情報を保持するロジックを備える。例えば、ロジック415は、エージェント410のルーティングテーブル416を保持する。メッセージは、パケットの形式であってよいが、送信される場合、通常なんらかのターゲット、デスティネーション、またはその他の識別子(ID)を参照している。このため、一の実施形態によると、ルーティングテーブル416は、エントリ416a−416eのような複数のエントリを含み、これらのエントリは複数のデスティネーションエージェント/ノードまたはターゲットエージェント/ノード、つまりエージェント420−460と対応付けられている。ここで、複数のエントリ416a−416eは、ターゲットIDまたはデスティネーションIDを参照しているパケット/メッセージについてルーティング情報を提供する。
例えば、エージェント410が、エージェント450に対応付けられているターゲットIDを参照しているパケットを、エージェント430から受信すると仮定する。一実施形態によると、テーブル416は、ターゲットエージェントのターゲットID、または、ターゲットIDを何らかの形式で表現したものを用いて、索引が付されている。こうして、エージェント450のエントリが決定されて、当該パケットをルーティングするポートを、対応付けられたポートのリストから決定する。ここで、パケットをポート411にルーティングされると決定する。同様に、エージェント420が当該メッセージを受信すると、ルーティングロジック425に基づいてパケットを、エージェント450に対するポート422にルーティングする。以前であれば、各ターゲットエージェントは、エージェント440に対するポート411のように、ルーティング用にただ1つのポートに対応付けられていた。しかし、エージェント420がシステムからリムーバルされると、休止状態を利用して、エージェント440用のポートを411から413または412に更新していた。このため、BIOSまたはその他のソフトウェアによる更新プロセスには長時間かかると共にコストが高くなってしまう可能性がある。
このため、一実施形態によると、ターゲットエントリは複数のポートに対応付けられており、優先順位が定められている。つまり、ターゲットエージェントに対するルーティングエントリは、ターゲットエージェントに対するルーティングに関して、ある1つのエージェントが有する複数の利用可能なポート内での優先度を指定するとしてよい。尚、優先度は任意の複数の要素に基づいて決まるとしてよく、例えば、ポートがイネーブル(E)/ディセーブル(D)されているか否か、ポートに対応付けられているターゲットエージェントまでの送信時間、ポートからターゲットエージェントまでのホップまたは中間エージェント/ノードの数、ポートでルーティングされて失われたパケットの数、またはその他の任意の公知のルーティング優先度の要素に基づいて決まるとしてよい。さらに、優先度はどのような方法で示されるとしてもよく、例えば、どのポートが優先されるかを表現するビット符号化であってもよいし、または、実装例に応じて、先に挙げられたポートほど優先順位が高いまたは低くなっている単純に順番が付されたリストであってもよい。
一例を挙げると、エージェント420は、エントリ416aにおいて、エージェント410の3つのポート411−413全てと対応付けられている。ここで、優先度リストを用いてこれらのポートに順位を付ける。つまり、ポート411は、ポート412よりもリスト内で先に挙げられていることから分かるように、ポート412よりも優先度が高い。さらに、ポート412は、エントリ416aについて、ポート413よりも優先度が高い。しかし、エントリが異なると、重要度/優先度が異なる場合がある。例えば、エントリ416eでは、ポート413の優先度が最も高くなっている。このため、一実施形態によると、エージェント410が受信したメッセージがエージェント420にルーティングされるべき場合、メッセージは、エントリ416aにおけるポートの優先順位に基づいて、「優先度の高い」ポート、つまり優先度が最も高いポート411にルーティングされる。
さらに、一実施形態によると、複数のポートはさらに、イネーブルフィールドに対応付けられている。例えば、エージェント430のロジック435はルートテーブル436を保持する。ルートテーブル436はエントリ436a−436eを含む。各エントリ、例えばエントリ436aは、エージェント430の複数のポートの複数のイネーブル/ディセーブルフィールドと対応付けられている、ターゲット識別子、つまりエージェント410またはエージェント410の表現を保持する。ここで、エントリ436aによると、ポート431がターゲットエージェント410に対して優先度が最も高く、ポート433はイネーブルされており、ポート432がディセーブルされている。尚、ポート432は、他のエージェント/ノードには接続されていないので、ディセーブルされている。
一実施形態によると、イネーブル/ディセーブルフィールドは、エージェント430の複数のポートに対応付けられているビットベクトルを含む。ビットが設定されていれば、対応するポートがイネーブルされていることを表し、ビットがクリアされていれば対応するポートはディセーブルされていることを表す。図示されているように、ビットベクトルは、各エントリにおいてイネーブルフィールドと個々のポートとを対応付けるように、ポートIDと並べられているとしてもよい。このため、イネーブルフィールドをイネーブル値またはディセーブル値に更新することはそれぞれ、ビットを設定すること、または、ビットをクリアすることを含む。しかし、「更新」という用語を用いるからといって必ずしも状態または値を変更することを含むわけではない。例えば、ポートが既にエントリにおいてディセーブルされている場合、当該エントリの当該ポートをディセーブル値に更新することは、ビットは既にクリアされているので、何も実行しないことを含むとしてよい。また、イネーブルフィールドは、ビットを設定またはクリアする構成に限定されない。一実施形態によると、ポートまたはその他のロジックをイネーブルまたはディセーブルするための任意の公知のハードウェアまたはロジック実装を利用するとしてよい。
ポートのディセーブルは、多くの理由に起因して発生するとしてよい。例えば、図4に示すように、ポート432は、物理的に接続されていないので、つまりポート432にエージェントまたはデバイスが結合されていないので、ディセーブルされる。しかし、一実施形態によると、ポートはさらに、ポートディセーブルメッセージを受信することに応じて、ディセーブルされる。別の実施形態によると、ポートは、リターンサイクルメッセージを受信することに応じてディセーブルされる。ポートディセーブルメッセージングおよびリターンサイクルメッセージングについては、それぞれ図5および図7を参照しつつより詳細に後述する。このため、具体的には図示していないが、ポートはあるターゲットエージェントのルーティングエントリにおいてイネーブルされて、別のターゲットエージェントの別のルーティングエントリではディセーブルされることもある。
図5は、エージェントのホットリムーバルの実施形態を説明するためのプロトコル図/ブロック図である。尚、図5から図7は、図4のインターコネクトアーキテクチャに含まれるエージェントサブ群のエージェント間のプロトコルを示すことに注意されたい。さらに、図5から図7は、プロトコルフローの具体的な実施形態を、略連続的に、具体的なメッセージ例を用いて示す。しかし、メッセージは異なる順序で生成/送信されるとしてもよく、上述したように、インターコネクトアーキテクチャではタイムワープが生じる場合があるので、メッセージはまったく異なる順序で受信されるとしてもよい。さらに、説明されるメッセージ、フロー、およびブロックは、連続して実行されるとしてもよいし、並行して実行されるとしてもよい。
ブロック405において、エージェント430に関するホットリムーバルイベントが検出される。一実施形態によると、ホットリムーバルイベントは、システムからエージェントまたはデバイスを物理的にリムーバルすることを含む。例えば、エージェント430がUSBストレージキーを含む場合、ストレージキーをシステムから抜き取る(アンプラグする)としてよい。このようなホットアンプラグは通常、2つの方法のうちいずれかの方法で発生する。オペレーティングシステムでは通常、これら2つの方法を、安全な取り出しおよび危険な取り出しと呼ぶ。安全な取り出しの場合、ソフトウェアは取り出しについて通知される。つまり、ユーザはデバイスの取り出しを選択して、ソフトウェアが当該デバイスの抽象化をリムーバルすると、当該デバイスは安全にリムーバルされる。その他の場合では、物理的にリムーバルされて、ソフトウェアによる当該デバイスの除去は後に回される。このため、ホットリムーバルイベントは、ソフトウェア関連イベントまたは物理リムーバルイベントを含むとしてよい。インターコネクトスタックを用いたコヒーレントアーキテクチャにおけるソフトウェア関連イベントの一例を挙げると、アプリケーション層のような高レベル層は、スタックを通して、ソフトウェア関連イベントを下方に送信して、ホットリムーバルイベントを指し示すとしてよい。
しかし、エージェントの物理的なリムーバルは、デバイスのホットリムーバルの唯一の方法ではないとしてよい。実際、一実施形態によると、エージェントのホットリムーバルは、ハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせを利用することによって、デバイスのリムーバル、デバイスのディセーブル、デバイスの電源オフ、またはシステムのその他の構成要素からデバイスを単に隠すことを含む。このため、第1の例として、エージェントが低電力状態に入りたい場合にホットリムーバルが発生する場合を考える。尚、設計実装によって、エージェントのホットリムーバルはどのように定義されるとしてもよく、上述した例のように定義してもよいし、または、システムまたはOSの観点から見てデバイスを除去するその他の公知の方法に従って定義されるとしてよい。
ホットリムーバルイベント505を検出することに応じて、エージェント430はディセーブルポートメッセージ(Dis)451を生成する。ディセーブルポートメッセージは、受信するエージェントに対して、あるポートをディセーブルすべきことを示す任意のメッセージを含む。一実施形態によると、当該メッセージは、どのポートをディセーブルすべきか指し示すポート識別子を含む。これに代えて、当該メッセージは単に、ポートをディセーブルすべきことを示して、受信エージェントが当該メッセージを受信したポートがディセーブルすべきポートである。
一実施形態によると、当該メッセージは、プロトコル層に対応付けられているプロトコルロジック等のロジックを用いて生成される。ここで、ルールは、定義されたリムーバルイベントの検出に応じてメッセージ451を生成するように、特定する。一実施形態によると、ディセーブルポートメッセージ451は、隣接するエージェント410および440に送信される。一例を挙げると、インターコネクトスタックにおいて、生成後、メッセージ送信のために、メッセージは物理層ロジック等のロジックを用いて送信される。
図4を参照すると、エージェント430のロジック435に保持されているテーブル436のエントリ436aは、ターゲットエージェント410にルーティングされるべきメッセージは、ターゲットエージェント410について優先度が最も高いポート、つまりポート431に転送されるのが好ましいことを指し示している。同様に、エントリ436cは、エージェント440に送信すべきメッセージはポート433に転送すべきであることを指し示している。ここで、エージェント410および440はそれぞれ、ポート412および442でディセーブルポートメッセージ451を受信する。
一実施形態によると、エージェント430は、ディセーブルポートメッセージ451の転送元のポート、つまりポート431および433を即座にディセーブルする。これに代えて、図示されている例では、エージェント430は、ディセーブルポートメッセージに対応付けられている完了メッセージを待って、対応するポートをディセーブルする。このように、本実施形態では、エージェント430は、ディセーブルポートメッセージの送信後且つ完了メッセージの受信前にメッセージを受信すると、イネーブルされたポートでメッセージのルーティングを継続する。例えば、エージェント410は、エージェント430にエージェント440宛てのメッセージ(MSG)を転送する。エージェント430は、ポート433をディセーブルするための完了453を受信していないので、エージェント440宛ての当該メッセージをポート433から転送する。
さらに、一実施形態によると、ディセーブルポートメッセージの受信、完了の送信、または、これらの組み合わせを実行することによって、エージェントはポートを介して待機サイクルをフラッシュする。例えば、エージェント410は、エージェント430に転送するべく、Msg1、Msg2、およびMsg3を待ち行列に入れている。ここで、エージェント410は、ディセーブルポートメッセージ451を受信すると、待ち行列からこれらのメッセージをエージェント430に対してフラッシュする。尚、ポート412を介したサイクルのフラッシュは、図示されているように、ポート412のディセーブルおよび完了の送信の前に実行されるが、サイクルのフラッシュはどのような順序で行われるとしてもよい。
エージェント410および440はそれぞれ、ポート412および442においてディセーブルポートメッセージを受信することに応じて、ポート412および442をディセーブルする。つまり、エージェント410は、ポート412でディセーブルポートメッセージを受信するので、ポート412をディセーブルする。一実施形態によると、ポート412をディセーブルすることは、ルーティングテーブル416の各エントリにおいてポート412をディセーブルすることを含む。例えば、図4に戻って説明すると、ポート412はエントリ416a−416e全てにおいてディセーブルされている。別の実施形態によると、ポート412は、ディセーブルポートメッセージを生成したソースエージェントに対応するエントリでのみディセーブルされる。ポート442は、エージェント440のルーティングロジック445において同様にディセーブルされる。別の実施形態によると、エージェント430は、ディセーブルポートメッセージの受信に応じて、テーブル416の参加者リストから除外される。
エージェント410および440はそれぞれ、完了メッセージ(Cmp)452および453を生成してエージェント430に送信する。エージェント430は、ポート433においてエージェント440から完了メッセージ453を受信することに応じて、ポート433をディセーブルする。一実施形態によると、図4に図示するように、エージェント440からの完了453のような完了メッセージに応じて、テーブル436の各エントリにおいてポート433をディセーブルする。つまり、エントリ436a−436eにおいてポート433をディセーブルする。ポート431を、テーブル436において同様にディセーブルする。つまり、図示されているように、ポート431をルーティングテーブル436のエントリ436a−436eそれぞれにおいてディセーブルする。
一実施形態によると、全てのポートをディセーブルすること、つまり、全ての完了を受信することに応じて、デバイスはリムーバルされる。上述したように、リムーバルはさまざまな処理、例えば、ソフトウェアからのリムーバル、ハードウェアからのリムーバル、電源オフ、またはその他のリムーバル処理を含むことに留意されたい。
図6は、リターンサイクルの実施形態を示すプロトコル図/ブロック図である。一実施形態によると、ディセーブルポートメッセージが隣接するノードに送信され、他のノードは通常の実行サイクルによって、エージェントおよび/またはエージェントにルーティングするためのポートをディセーブルすることを知る。つまり、ディセーブルポートメッセージは、ホットリムーバルされたデバイスの隣接ノードのポートをディセーブルする。以下で説明するように、このメッセージを受信したポートは、隣接するノードのルーティングロジックにおいてディセーブルされる。通常のトラフィックはリターンサイクルとなる。リターンサイクルは、後述するが、ホットリムーバルされたデバイスに対応付けられているほかの構成要素におけるポートを最終的にディセーブルする。このため、通常のトラフィックおよびリターンサイクルのやり取りに加えて、ディセーブルポートメッセージに基づいて、インターコネクトアーキテクチャは、ホットリムーバルの後、ルーティング情報を安定化させる。
一例を挙げると、エージェント450がエージェント430宛てのメッセージを生成して送信する。ノード450のルーティングロジック455に基づいて、当該メッセージはポート451を介してエージェント420にルーティングされる。エージェント420のルーティングテーブル425に基づいて、当該メッセージはさらにポート421を介してエージェント410にルーティングされる。ここで、一実施形態によると、ポートディセーブルメッセージに応じて、エージェント410はポート412をディセーブルした。しかし、現在の優先度リストによると、ノード413および411はエージェント430についてイネーブルされている。このため、エージェント410はこれらのポートを介してエージェント430へルーティングしようと試みるとしてよい。しかし、以下に詳述するように、リターンサイクルフローは最終的に、エージェント410のルーティングロジック415内の、エージェント430用のポートを全てディセーブルにすべきである。上述したほかの実施形態によると、エージェント430は即座にテーブル416の参加者リストから除外される。
どちらにしても、エージェント430がルーティングロジック415においてディセーブルされている場合に、つまり、エージェント430のエントリにおいてどのポートもイネーブルされていない、または、エージェント430のエントリが存在しない場合に、メッセージは最終的にエージェント410に到達する。ここで、一実施形態によると、エージェント410は、ルーティングロジック415においてエージェント430がディセーブルされているためにメッセージを転送できないと、リターンサイクルを生成して実行する。一実施形態によると、リターンサイクルメッセージは、元々のメッセージを含み、あるフィールドまたはその他のフラグがリターンサイクルであることを特定するべく設定されている。しかし、他の実施形態によると、メッセージが転送できなかったことを指し示す方法であればどのような方法を用いてリターンサイクルを生成するとしてもよい。第1の例を挙げると、リターンサイクルはメッセージの元々のソース、例えばエージェント450に戻される。別の例を挙げると、リターンサイクルは、送信経路における現在のノードの前の送信ノードに戻される。
ここでは、リターンサイクルメッセージはエージェント420に戻される。一実施形態によると、リターンサイクルメッセージがポート421で受信されると、ポート421はエージェント420のロジック425においてエージェント430についてディセーブルされる。一例を挙げると、ポート421をディセーブルすることに加えて、エージェント420は当該メッセージを、エージェント430に対する別のイネーブルされたポート、例えば、エージェント440、エージェント460(ポート442はエージェント440においてディセーブルされているので)を介してエージェント410に再びルーティングするポート423から、ルーティングし直すことを試みるとしてよい。エージェント410は同様のリターンサイクルメッセージを与えて、当該リターンサイクルメッセージは、エージェント460、エージェント440およびエージェント420に戻る経路を戻って、エージェント430用のポートをディセーブルする。メッセージがエージェント420に戻ると、エージェント430宛てのメッセージに対するリターンサイクルはポート423で受信されたので、ポート423はルーティングロジック425においてエージェント430についてリムーバルされる。ここで、一実施形態によると、ロジック425においてエージェント430に対するポートが全てディセーブルされると、エージェント430はテーブル416の参加者リストから除外されたと言える。ルーティングテーブルからエージェントを除外することは、エントリを削除することを含むとしてよい。しかし、別の実施形態によると、エントリを除外することは、エントリに対応付けられたポートを全てディセーブルにすることを含む。
図から分かるように、エージェント420は、エージェント430がシステムからリムーバルされたことを即座には認識しない場合もあるが、メッセージのルーティングを試みることによって、エージェント430がリムーバルされたことを知る。つまり、エージェント420のルーティングテーブル425は、通常のトラフィックのルーティングによって、エージェント430がリムーバルされたことを知る。ここで、サイクルがあるところから先に進まなくなると、ルーティングロジック425は、通常サイクルから戻されたメッセージを受信することによって、エージェント430に到達不可能であることを認識できる。同様に、上述した一実施形態によると、エージェント410がディセーブルするポートはディセーブルメッセージが受信されたポートのみとしてよく、後に、リターンサイクルプロトコルによってエージェント430についてイネーブルされたその他のポートをディセーブルして、参加者リストからエージェント430を実質的にリムーバルするとしてよい。
また、リターンサイクルメッセージは、エージェント420でそれ以上先に進まなくなると、つまりロジック425でエージェント430について全てのポートがディセーブルされていると、エージェント450に戻される。ここで、エージェント450は、ロジック455においてエージェント430に対するポート451をディセーブルする。このため、時間が経過すると、インターコネクトアーキテクチャは、ポートのディセーブルを参照して、あるエージェントがリムーバルされたこと、または、少なくとも、あるエージェントに到達できないことを知る。
図6を参照しつつ隣接するエージェントに送信されるディセーブルポートメッセージを利用するホットリムーバルを説明しているが、ディセーブルメッセージまたはディセーブルポートメッセージはこれに限定されない。一例を挙げると、一実施形態では、ディセーブルメッセージはシステム全体またはインターコネクトアーキテクチャ全体にブロードキャストされる。この場合、各構成要素は、このディセーブルメッセージをブロードキャスト/転送して、ホットリムーバルされるデバイスに対応付けられているルーティングロジックを更新する。尚、ルーティングロジックの更新は上述した方法と同様の方法、例えば、ルーティングロジックの参加者リストからホットリムーバルされたエージェントを除外する方法、および/または、ルーティングロジックにおいてホットリムーバルされたエージェントに対応付けられているポートを全てディセーブルする方法に従って行うとしてよい。
図7は、エージェントのホットアッドの実施形態を示すプロトコル図/ブロック図である。図5のブロック505ではホットリムーバルが検出されたがこれに代えて、ブロック705において、エージェント430のホットアッドが検出される。ホットアッドでは実質的に、上述したホットリムーバルの実施形態のうちいずれかの逆が実行される。このため、ホットリムーバルがシステムからのエージェントの物理的なリムーバルを含む場合、ホットアッドはシステムに対するエージェントの物理的な追加を含み、同様に、電源オフ/オンおよびソフトウェアリムーバル/アッドとなる。
エージェント430に対応付けられたホットアッドが検出されると、イネーブルポートメッセージがエージェント430によって生成される。一実施形態によると、イネーブルポートメッセージはインターコネクトネットワーク内のすべてのノードに送信される。ここで、ディセーブルポートメッセージが隣接するノードにのみ送信される実施形態であっても、イネーブルポートメッセージは全てのノードにブロードキャストされるとしてよい。これに代えて、別の実施形態によると、イネーブルポートメッセージは隣接するノード、つまりエージェント430に直接接続されているノードにのみ送信される。
図示されているように、エージェント410はポート412においてイネーブルメッセージを受信する。エージェント430は、現時点においてエージェント430のエントリがなければ、参加者リストに追加されるとしてよい。一実施形態によると、イネーブルメッセージが受信されたポートは1つのみであっても、イネーブルポートメッセージを受信することに応じて、全てのポート、例えばポート411−413がイネーブルされる。ここで、エージェント430にルーティングされていないポートがイネーブルされ得るが、上述したように、時間が経過すれば、リターンサイクルによってこれらのポートはディセーブルされるべきであることをエージェント410は知る。さらに、その後ルーティングされるサイクルに基づいて、ロジック415におけるエージェント430に対する優先度リストを決定して、動的に変更するとしてよい。
別の実施形態によると、イネーブルポートメッセージを受信することによってポート412のみがイネーブルされる。ここで、複数のイネーブルポートメッセージが複数の異なるポートで受信されて、エージェント410のポートのうちエージェント430にルーティングされるポートを正確にイネーブルするとしてよい。同様に、エージェント440はイネーブルポートメッセージを受信して、これに応じてエージェント430のルーティングテーブルを設定する。一実施形態によると、イネーブルポート完了メッセージがエージェント410、440から送信されて、ポート431および433がこれに従ってイネーブルされる。
このため、上述の記載から明らかであるが、エージェントの設定が変更されると、インターコネクトアーキテクチャにおけるルーティングテーブルは、休止状態を利用することなく動的に修正されるとしてよい。この結果、システムを停止させて外部のソフトウェア/ファームウェアにルーティング情報を再設定させると高コストになってしまうが、このような問題を回避し得る。さらに、隣接するノードに送信されるディセーブルメッセージおよびリターンサイクルを利用することによって、システムは、リムーバルをシステム全体にブロードキャストしなくても、リムーバルされたデバイスを知り得る。この結果、不必要なトラフィックが低減される。さらに、ターゲットエージェント用のポートは、システム動作において最も好都合なパケットのルーティングを保証するべく動的に変更可能な優先度リストにおいて示されているとしてよい。
本明細書では、モジュールとは、任意のハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせを意味する。別個のモジュールを定義するべく図示されているモジュール境界は、一般的には異なり重複するとしてよい。例えば、第1のモジュールおよび第2のモジュールはハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせを共有し得るが、独立したハードウェア、ソフトウェアまたはファームウェアを保有する可能性もある。一実施形態によると、「ロジック」という用語を使用する場合は、トランジスタ、レジスタ等のハードウェアまたはプログラム可能なロジックデバイス等のハードウェアを含む。しかし、別の実施形態によると、「ロジック」はさらに、ハードウェアに組み込まれたソフトウェアまたはコード、例えばファームウェアまたはマイクロコードを含む。
本明細書で使用する場合、「値」とは、数字、状態、論理状態、またはバイナリ論理状態を任意の公知の方法で表現したものを含む。ロジックレベル、ロジック値または論理値の利用は通常、1および0を用いることを意味し、この表現方法は単にバイナリロジック状態を表す。例えば、「1」はHIGHロジックレベルを意味し、「0」はLOWロジックレベルを意味する。一実施形態によると、トランジスタまたはフラッシュセルのようなストレージセルは、1つの論理値または複数の論理値を保持することができるとしてよい。しかし、コンピュータシステムではこれら以外の値の表現方法も用いられている。例えば、10進法の「10」という数は、バイナリ値では「1010」として表現され得るし、16進法では「A」となる。このため、「値」は、コンピュータシステムにおいて保持され得る表現方法であれば、どのような方法で情報を表現するものであってもよい。
さらに、値または値の一部によって状態を表現し得る。一例によると、第1の値、例えば論理値「1」はデフォルト状態または初期状態を表現し、第2の値、例えば論理値「0」は非デフォルト状態を表現するとしてよい。さらに、「リセット」および「設定」という用語はそれぞれ、一実施形態によると、デフォルトの値または状態および更新後の値または状態を意味する。例えば、デフォルト値は、HIGH論理値、つまり「リセット」を含み、更新値はLOW論理値、つまり「設定」を含むとしてよい。尚、複数の値を任意に組み合わせてあらゆる状態を表現するとしてよい。
上述した方法、ハードウェア、ソフトウェア、ファームウェアまたはコードの実施形態は、機械アクセス可能媒体または機械読み出し可能媒体に格納されている、処理素子によって実行可能な命令またはコードによって実装されるとしてよい。機械アクセス可能/読み出し可能媒体は、コンピュータまたは電子システムのような機械が読み出し可能な形式で情報を提供(つまり、格納および/または送信)する任意の機構を含む。例えば、機械アクセス可能媒体は、ランダムアクセスメモリ(RAM)、例えばスタティックRAM(SRAM)またはダイナミックRAM(DRAM);ROM;磁気格納媒体または光学格納媒体、フラッシュメモリデバイス、電気ストレージデバイス、光学ストレージデバイス、音響ストレージデバイス、または伝播信号(例えば、搬送波、赤外線信号、デジタル信号)のストレージデバイスのその他の形態等を含む。例えば、機械は、伝播信号で送信される情報を保持することができる媒体から、搬送波のような伝播信号を受信することによってストレージデバイスにアクセスするとしてよい。
本明細書で「一実施形態」または「実施形態」と言及する場合、当該実施形態に関連して説明されている特定の特徴、構造、または特性が、本発明の少なくとも1つの実施形態に含まれていることを意味する。このため、「一実施形態」または「実施形態」という表現は本明細書で何度も言及されるが、必ずしもすべてが同じ実施形態に言及しているわけではない。さらに、特定の特徴、構造、または特性を、1以上の実施形態において、任意の適切な方法で組み合わせるとしてよい。
上述した明細書では、具体的な実施形態例を参照しつつ詳細に説明した。しかし、本願の請求項に記載されている本発明の精神および範囲を逸脱することなく、上述した実施形態例をさまざまに変更および修正できることは明らかである。したがって、本明細書および添付図面は、本発明を例示するものと解釈されるべきであって、本発明を制限するものと見なされるべきではない。さらに、「実施形態」およびその他の例示に関する単語を明細書中で使用しているが、必ずしも同じ実施形態または同じ例を意味するのではなく、同じ実施形態を意味し得ると共に、相違する別個の実施形態を意味するとしてよい。

Claims (20)

  1. 複数のエージェントにポイントツーポイントリンクを介して結合可能な複数のポートと、
    ターゲットエントリを含むルーティングテーブルを保持する第1のロジックと
    を備え、
    前記ターゲットエントリは、優先順位に応じて前記複数のポートをターゲットエージェントに対応付けるインターコネクトエージェント。
  2. 前記優先順位に応じて前記複数のポートをターゲットエージェントに対応付ける前記ターゲットエントリは、優先順位に応じて前記複数のポートを複数のターゲットエージェントに対応付ける複数のターゲットエントリのうちの1つである請求項1に記載のインターコネクトエージェント。
  3. 前記第1のロジックは、ルーティングファクターに基づく別の優先順位に応じて前記複数のポートを対応付けるように前記ターゲットエントリを動的に構成可能であり、
    前記ルーティングファクターは、前記複数のポートのうちの最近ディセーブルされたポート、前記複数のポートのうち一のポートに対応付けられている前記ターゲットエントリまでのホップの数、および前記複数のポートのうちの一のポートを介した前記ターゲットエージェントまでのルーティング時間の少なくとも1つである請求項1に記載のインターコネクトエージェント。
  4. 前記優先順位に応じて前記複数のポートをターゲットエージェントに対応付ける前記ターゲットエントリを含む前記ルーティングテーブルを保持する前記第1のロジックは、優先度リストにおいて優先度で列挙されている前記複数のポートに対応する複数のポート識別子を含むエントリを有し、
    前記複数のポート識別子はそれぞれ、イネーブルフィールドと対応付けられており、
    前記複数のポートのうち第1のポートに対応付けられているイネーブルフィールドは、前記第1のポートでリターンサイクルメッセージを受信すると、ディセーブル値に更新される請求項1に記載のインターコネクトエージェント。
  5. 第1のノードに設けられ、ポイントツーポイントリンクを介して受信ノードと通信する手段と、
    前記第1のノードがホットリムーバルされることが決定されると、ポイントツーポイントリンクを介して前記受信ノードと通信する前記手段を介して第2のノードに送信されるディセーブルメッセージを生成する手段と、
    ポイントツーポイントリンクを介して前記受信ノードと通信する前記手段のためのイネーブルフィールドとターゲットノードとを対応付けるテーブルを保持する手段と
    を備え、
    ポイントツーポイントリンクを介して前記受信ノードと通信する前記手段のための前記イネーブルフィールドは、ポイントツーポイントリンクを介して前記受信ノードと通信する前記手段において前記ディセーブルメッセージに対応づけられた完了メッセージを受信すると、ディセーブル値に更新されるインターコネクトエージェント。
  6. ポイントツーポイントリンクを介して前記受信ノードと通信を実行する前記手段に対応付けられたホットリムーバルイベントを検出する手段と、
    前記ホットリムーバルイベントの検出に基づいて前記第1のノードがホットリムーバルされると決定する手段と
    をさらに備える請求項5に記載のインターコネクトエージェント。
  7. 第1のエージェント
    を備え、
    前記第1のエージェントは、
    複数のポートと、
    複数のターゲットエージェントに対応付けられている複数のエントリを含むテーブルを保持する第1のロジックと
    を有し、
    前記複数のポートのうち第1のポートは、ポートディセーブルメッセージを受信し、
    前記複数のエントリはそれぞれが、前記複数のポートに対応する複数のイネーブルフィールドを保持し、前記第1のロジックは、前記第1のポートが前記ポートディセーブルメッセージを受信すると、前記複数のエントリのそれぞれに保持されている前記第1のポートに対応するイネーブルフィールドを、ディセーブル値に更新する装置。
  8. 前記第1のロジックに結合されている第2のロジック
    をさらに備え、
    前記第2のロジックは、前記第1のロジックが前記第1のポートの前記イネーブルフィールドを前記ディセーブル値に更新すると、前記ポートディセーブルメッセージに対応付けられているソースノードに対して、前記ポートディセーブルメッセージと対応付けられている完了メッセージを生成する請求項7に記載の装置。
  9. 前記第1のロジックは、前記複数のエントリのうち、前記複数のターゲットエージェントのうち一のターゲットエージェントに対応付けられているエントリを、前記エントリにおいて前記複数のポートに対応する前記複数のイネーブルフィールドの全てについてディセーブル値が保持されていれば、前記テーブルからリムーバルする請求項7に記載の装置。
  10. 前記第1のロジックに結合されている第2のロジック
    をさらに備え、
    前記第2のロジックは、前記第1のロジックが前記テーブルから前記エントリをリムーバルした後で、前記複数のターゲットエージェントのうち前記一のターゲットエージェントを参照するメッセージをソースエージェントから受信すると、前記ソースエージェントに対してリターンサイクルを生成する請求項9に記載の装置。
  11. 前記第1のロジックに結合されている第2のロジック
    をさらに備え、
    前記第2のロジックは、前記第1のポートが前記ポートディセーブルメッセージを受信すると、前記第1のポートに対応付けられている、複数の待機サイクルのフラッシュを開始する請求項7に記載の装置。
  12. 前記第1のロジックはさらに、前記複数のエントリのうちそれぞれに保持されている第2のポートに対応する第2のイネーブルフィールドを、前記第2のポートがリターンサイクルメッセージを受信すると、前記ディセーブル値に更新する請求項7に記載の装置。
  13. 第2のエージェントに対応付けられているホットアッドイベントに応じて、前記第2のエージェントに対してイネーブルポートメッセージを生成するロジックを有する第1のエージェントと、
    第1のポート、第2のポート、および第1のロジックを有する第2のエージェントと
    を備え、
    前記第1のロジックは、前記第1のエージェントのターゲット識別子と、前記第1のポートの第1のイネーブルフィールドおよび前記第2のポートの第2のイネーブルフィールドとを対応付け、
    前記第1のロジックは、前記第2のポートにおいて前記第1のエージェントから前記イネーブルポートメッセージを受信すると、前記第2のイネーブルフィールドをイネーブル値に更新するシステム。
  14. 前記第1のポートの前記第1のイネーブルフィールドもまた、前記第2のポートにおいて前記第1のエージェントから前記イネーブルポートメッセージを受信すると、前記イネーブル値に更新され、
    前記第2のエージェントはさらに、前記第1のロジックに結合されている第2のロジックを有し、
    前記第2のロジックは、前記第2のポートが前記イネーブル値に更新されると、前記第1のエージェントに対して前記イネーブルポートメッセージに対応付けられている完了メッセージを生成する請求項13に記載のシステム。
  15. 第1のノードに対応付けられているホットリムーバルイベントに応じて、前記第1のノードにおいてディセーブルポートメッセージを生成する段階と、
    前記第1のノード内で保持されている複数のルーティングエントリにおいて前記第1のノードの第1のポートを、前記第1のポートにおいて前記ディセーブルポートメッセージに対応付けられている完了メッセージを受信すると、ディセーブルする段階と、
    前記第1のノードのポートが全て、前記第1のポートも含め、ディセーブルされると、前記第1のノードをリムーバルする段階と
    を備える方法。
  16. 前記ディセーブルポートメッセージを生成した後、且つ、前記完了メッセージを受信する前に、前記第1のポートを介して受信する前記第1のポートに対応付けられているメッセージはいずれも、前記第1のノードで、転送する段階
    をさらに備える請求項15に記載の方法。
  17. 第2のノードの第2のポートにおいて前記ディセーブルポートメッセージを受信する段階と、
    前記ディセーブルポートメッセージを受信すると、
    前記第2のポートに対応付けられているインフライトサイクルをいずれもフラッシュする段階と、
    前記第2のノード内に保持されている第2の複数のルーティングエントリにおいて前記第2のポートをディセーブルする段階と、
    前記第1のノードに対して完了メッセージを生成する段階と
    をさらに備える請求項15に記載の方法。
  18. 送信ノードから送信された、前記第1のノードのデスティネーション識別子を含むメッセージを前記第2のノードで受信する段階と、
    前記第2の複数のルーティングエントリのうち、前記第1のノードの前記デスティネーション識別子と対応付けられているルーティングエントリにおいて、全てのポートがディセーブルされていると判断する段階と、
    前記第1のノードの前記デスティネーション識別子と対応付けられている前記ルーティングエントリにおいて全てのポートがディセーブルされていると判断されると、前記送信ノードに対してリターンサイクルメッセージを生成する段階と
    をさらに備える請求項17に記載の方法。
  19. 前記送信ノードの第3のポートにおいて前記リターンサイクルメッセージを受信する段階と、
    前記第3のポートにおいて前記リターンサイクルメッセージを受信すると、前記送信ノード内で保持されている第3の複数のルーティングエントリにおいて前記第3のポートをディセーブルする段階と
    をさらに備える請求項18に記載の方法。
  20. 前記第1のノードに対応付けられているホットアッドイベントに応じて、前記第1のノードにおいてイネーブルポートメッセージを生成する段階と、
    前記第1のポートにおいて前記イネーブルポートメッセージに対応付けられている第2の完了メッセージを受信すると、前記第1のノード内で保持されている前記複数のルーティングエントリにおいて前記第1のノードの前記第1のポートをイネーブルする段階と
    をさらに備える請求項17に記載の方法。
JP2009160233A 2008-07-07 2009-07-06 ルートテーブルの動的更新 Expired - Fee Related JP5050009B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/168,616 US8111615B2 (en) 2008-07-07 2008-07-07 Dynamic update of route table
US12/168,616 2008-07-07

Publications (2)

Publication Number Publication Date
JP2010079880A true JP2010079880A (ja) 2010-04-08
JP5050009B2 JP5050009B2 (ja) 2012-10-17

Family

ID=41413040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009160233A Expired - Fee Related JP5050009B2 (ja) 2008-07-07 2009-07-06 ルートテーブルの動的更新

Country Status (4)

Country Link
US (2) US8111615B2 (ja)
JP (1) JP5050009B2 (ja)
CN (1) CN101635679B (ja)
DE (1) DE102009031870B4 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015220522A (ja) * 2014-05-15 2015-12-07 富士通株式会社 情報処理装置、経路決定方法及びプログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8111615B2 (en) * 2008-07-07 2012-02-07 Intel Corporation Dynamic update of route table
US20110078472A1 (en) * 2009-09-25 2011-03-31 Electronics And Telecommunications Research Institute Communication device and method for decreasing power consumption
CN102232218B (zh) 2011-06-24 2013-04-24 华为技术有限公司 计算机子系统和计算机系统
CN102810118B (zh) * 2012-07-05 2015-08-05 上海电力学院 一种变权网k近邻搜索方法
CN102801612B (zh) * 2012-07-06 2015-04-22 武汉虹信通信技术有限责任公司 一种更新交换芯片上主机路由信息的改进方法及系统
US9213643B2 (en) 2013-03-13 2015-12-15 Applied Micro Circuits Corporation Broadcast messaging and acknowledgment messaging for power management in a multiprocessor system
US10057123B1 (en) 2013-12-27 2018-08-21 Alarm.Com Incorporated Network topology backup
CN105471824A (zh) * 2014-09-03 2016-04-06 阿里巴巴集团控股有限公司 实现浏览器调用本地业务组件的方法、装置及系统
US10394599B2 (en) 2017-01-05 2019-08-27 International Business Machines Corporation Breaking dependence of distributed service containers

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4922408A (en) * 1985-09-27 1990-05-01 Schlumberger Technology Corporation Apparatus for multi-processor communications
CA1335836C (en) * 1988-07-07 1995-06-06 Ichiro Iida Adaptive routing system
US6507589B1 (en) * 1998-04-30 2003-01-14 Openwave Systems Inc. Method and apparatus for routing between network gateways and service centers
US20020156918A1 (en) * 2001-04-23 2002-10-24 Brocade Communications Systems, Inc. Dynamic path selection with in-order delivery within sequence in a communication network
US6950394B1 (en) * 2001-09-07 2005-09-27 Agilent Technologies, Inc. Methods and systems to transfer information using an alternative routing associated with a communication network
TWI220714B (en) * 2002-01-10 2004-09-01 Accton Technology Corp Method of hot swap
US6922756B2 (en) 2002-12-19 2005-07-26 Intel Corporation Forward state for use in cache coherency in a multiprocessor system
US6990545B2 (en) * 2003-04-28 2006-01-24 International Business Machines Corporation Non-disruptive, dynamic hot-plug and hot-remove of server nodes in an SMP
US7194581B2 (en) * 2003-06-03 2007-03-20 Intel Corporation Memory channel with hot add/remove
US7023808B2 (en) * 2003-12-23 2006-04-04 Cisco Technology, Inc. System and method for distributing route selection in an implementation of a routing protocol
JP2007166347A (ja) 2005-12-15 2007-06-28 Fujitsu Support & Service Kk ネットワーク中継器
JP5086585B2 (ja) 2006-08-11 2012-11-28 アラクサラネットワークス株式会社 ネットワーク中継装置
US8111615B2 (en) * 2008-07-07 2012-02-07 Intel Corporation Dynamic update of route table

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015220522A (ja) * 2014-05-15 2015-12-07 富士通株式会社 情報処理装置、経路決定方法及びプログラム

Also Published As

Publication number Publication date
JP5050009B2 (ja) 2012-10-17
DE102009031870B4 (de) 2013-01-31
US8693476B2 (en) 2014-04-08
DE102009031870A1 (de) 2010-01-14
CN101635679B (zh) 2013-12-18
US20110286458A1 (en) 2011-11-24
US20100002707A1 (en) 2010-01-07
US8111615B2 (en) 2012-02-07
CN101635679A (zh) 2010-01-27

Similar Documents

Publication Publication Date Title
JP5050009B2 (ja) ルートテーブルの動的更新
US10019366B2 (en) Satisfying memory ordering requirements between partial reads and non-snoop accesses
JP5575870B2 (ja) 部分読出と非スヌープアクセスとの間のメモリ順序付け要件の充足
US10205653B2 (en) Fabric discovery for a cluster of nodes
TWI431475B (zh) 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法
US9529532B2 (en) Method and apparatus for memory allocation in a multi-node system
WO2014065876A1 (en) High performance interconnect coherence protocol
US9372800B2 (en) Inter-chip interconnect protocol for a multi-chip system
TW201543218A (zh) 具有多節點連接的多核網路處理器互連之晶片元件與方法
US20150254207A1 (en) Method and system for ordering i/o access in a multi-node environment
EP3235193B1 (en) System for multicast and reduction communications on a network-on-chip
JP2018109965A (ja) データ処理
EP3234783B1 (en) Pointer chasing across distributed memory
WO2007096979A1 (ja) 情報処理装置およびデータ転送方法
JP7419261B2 (ja) ストリーミングデータ転送のためのフロー圧縮を用いたデータ処理ネットワーク
JP2018129041A (ja) スヌープリクエストに対する応答の転送

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110628

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110927

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111028

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120626

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120723

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees