JP7419261B2 - ストリーミングデータ転送のためのフロー圧縮を用いたデータ処理ネットワーク - Google Patents

ストリーミングデータ転送のためのフロー圧縮を用いたデータ処理ネットワーク Download PDF

Info

Publication number
JP7419261B2
JP7419261B2 JP2020561628A JP2020561628A JP7419261B2 JP 7419261 B2 JP7419261 B2 JP 7419261B2 JP 2020561628 A JP2020561628 A JP 2020561628A JP 2020561628 A JP2020561628 A JP 2020561628A JP 7419261 B2 JP7419261 B2 JP 7419261B2
Authority
JP
Japan
Prior art keywords
data
node
home node
response
interconnection
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.)
Active
Application number
JP2020561628A
Other languages
English (en)
Other versions
JP2021522608A (ja
Inventor
ジャムシェド・ジャラル
タッシャー・ピー・リンジ
パニンドラ・クマール・マンナヴァ
ディミトリオス・カセリディス
Original Assignee
アーム・リミテッド
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 アーム・リミテッド filed Critical アーム・リミテッド
Publication of JP2021522608A publication Critical patent/JP2021522608A/ja
Application granted granted Critical
Publication of JP7419261B2 publication Critical patent/JP7419261B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/501Overload detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Description

本発明は、データ処理ネットワークに関する。
システムオンチップ(SoC)などのデータ処理システムは、複数のプロセッサコア、複数のデータキャッシュ、および共有データリソースを収容することができる。例えば、共有メモリシステムでは、それぞれのプロセッサコアが、単一の共有アドレス空間に対して読み出しおよび書き込みを行うことができる。キャッシュの整合性は、1つまたは複数のキャッシュ、および単一のキャッシュされるエリア内のデータを共有する2つ以上のデバイスを収容した、どんなシステムにおいても問題である。キャッシュを収容したシステムに関して、2つの潜在的な問題がある。第1に、キャッシュされるデバイスがコピーした後で、メモリが別のデバイスによって更新されることがある。この時点で、キャッシュ内のデータは、最新ではないかまたは無効であり、最新データをもはや収容していない。第2に、ライトバックキャッシュを収容したシステムは、ローカルにキャッシュされたコピーにデバイスが書き込んだ時点でメモリにはもはや最新データが収容されていない、というケースに対処しなければならない。メモリを読み出す第2のデバイスには、最新ではないデータが見えることになる。
データ処理システムは、相互接続システムを介して一緒に結合されてネットワークを形成する、いくつかのノードとして構成され得る。キャッシュの整合性を維持するためのプロトコルの一例は、スヌープ要求を使用するものである。ネットワークのあるノードが、特定のアドレスに関連するデータにアクセスしたいとき、要求されたデータのコピーがローカルキャッシュ内に記憶されている他のノードに、スヌープメッセージが送信される。
一般に、整合性は、共有リソースを有するデータ処理システムにおいて、メッセージングプロトコルを実装することによって維持される。システムの性能は、相互接続機構のメッセージ伝送能力、および各トランザクションを完了するために必要となるメッセージの数によって制約される。インターコネクションを介したデータのストリーミング転送などのいくつかの応用例では、相互接続機構が輻輳状態になり、それにより、システムの性能が制限されることがある。
添付の図面は、さまざまな代表的実施形態についてより完全に説明するために使用され、また開示する代表的実施形態およびその固有の利点をより一層理解するために当業者によって使用され得る、視覚的表現を提供する。これらの図面では、同様の参照番号が、対応する要素を識別する。
さまざまな代表的実施形態による、データ処理ネットワークのブロック図である。 本開示の実施形態による、データ処理装置におけるデータ書き込みトランザクションのトランザクションフロー図である。 本開示の実施形態による、データ処理装置におけるデータ書き込みトランザクションのトランザクションフロー図である。 さまざまな代表的実施形態による、データ処理ネットワークのノード間の通信チャネルを示す図である。 本開示の実施形態による、データ処理装置におけるデータ書き込みトランザクションのトランザクションフロー図である。 さまざまな代表的実施形態による、データ書き込みトランザクションを処理する際のホームノードの動作の方法のフローチャートである。 さまざまな代表的実施形態による、データ書き込みトランザクションを処理する際の要求ノードの動作の方法のフローチャートである。
本開示は、多くの異なる形態での具現化が可能であるが、本開示は本開示の原理の一例とみなすべきであり、図示し説明する特定の実施形態に本開示を限定するものではない、という理解の下に、特定の実施形態が図面中に示され、本明細書において詳細に説明される。下の説明では、同様の参照番号が、図面のいくつかの図中の同じ部分、類似の部分、または対応する部分について説明するために使用されていることがある。
本文献では、第1のおよび第2の、上部および下部などの関係性の用語が、あるエンティティまたはアクションと別のエンティティまたはアクションとを、そのようなエンティティ間またはアクション間の実際のそのような任意の関係または順序を必ずしも必要とするかまたは示唆することなく、単に区別するために使用されていることがある。「備える(comprises)」、「備える(comprising)」、「含む(includes)」、「含む(including)」、「有する(has)」、「有する(having)」いう用語、またはそれらの他の任意の変形は、要素のリストを含むプロセス、方法、物品、または装置が、それらの要素のみを含むのではなく、明示的にリストされていないかまたはそのようなプロセス、方法、物品、もしくは装置に固有ではない他の要素も含むことのできるような、非排他的包含をカバーすることが意図される。「~を備える(comprises …a)」に続く要素は、それ以上の制約なく、その要素を含むプロセス、方法、物品、または装置における追加の同一要素の存在を排除するものではない。
本文献全体を通して、「1つの実施形態」、「いくつかの実施形態」、「一実施形態」、「実装形態」、「態様」、または類似の用語に言及する場合、実施形態に関して説明される特定の特徴、構造、または特性が、本開示の少なくとも1つの実施形態に含まれている、ということを意味する。したがって、そのような句が出現する場合、または本明細書全体を通してさまざまな場所にそのような句が出現する場合、必ずしも全てが、同じ実施形態に言及しているとは限らない。さらに、特定の特徴、構造、または特性が、1つまたは複数の実施形態において、制限なく、任意の適切な様式で組み合わされてもよい。
「または」という用語は、本明細書では、包含的なものとして、またはいずれか1つもしくはいずれかの組み合わせを意味するものとして、解釈すべきである。したがって、「A、B、またはC」は、「次のうちのいずれか、すなわちA;B;C;AおよびB;AおよびC;BおよびC;A、B、およびC」を意味する。この定義の例外は、要素、機能、ステップ、または行為の組み合わせが何らかの形で本質的に相互に排他的であるときにのみ起こる。また、文法的接続詞は、別段の定めのない限り、または文脈から明らかでない限り、等位接続される節、文、語などのありとあらゆる選言的および連言的な組み合わせを表すことが意図される。したがって、「または」という用語は、一般に、「および/または」などを意味するものと理解されたい。
本明細書において述べるあらゆる文献は、参照によりその全体がここに組み込まれる。別段の明示的な定めのない限り、または本文から明らかでない限り、単数形の項目に言及する場合、それは、複数形の項目も含むと理解されたく、また逆も同様である。
本明細書において値の範囲を列挙する場合、それは、別段の指示のない限り、限定的であることを意図したものではなく、その代わりに、その範囲に含まれるありとあらゆる値を個々に参照しており、そのような範囲内の各個別の値は、本明細書においてそれが個々に列挙されるかのように、本明細書に組み込まれる。「約」、「およそ」、「実質的に」などという語は、数値を伴うとき、当業者には理解されるように、意図した目的のために満足のいくように動作するためのずれを示すものと解釈すべきである。値および/または数値の範囲は、本明細書において例として提供されているにすぎず、説明する実施形態の範囲に対する制限を設けるものではない。本明細書において提供されるありとあらゆる例または例示的文言(「例えば」、「など」など)の使用は、実施形態をより一層明らかにすることが意図されているにすぎず、実施形態の範囲に制限を課すものではない。本明細書中のどんな文言も、特許請求されない任意の要素を実施形態の実践にとって不可欠であると示すものと解釈すべきではない。
例示を簡単かつ明確にする目的で、図の間で、対応する要素または類似の要素を示すために参照番号が繰り返されることがある。本明細書において説明する実施形態の理解をもたらすために、多数の詳細が記載される。実施形態は、これらの詳細なしでも実践することができる。他の場合には、説明する実施形態を曖昧にしないように、よく知られた方法、手順、およびコンポーネントについて詳細に説明されていない。説明は、本明細書において説明する実施形態の範囲に限定されるものとみなすべきではない。
以下の説明の中で、「第1の」、「第2の」、「上部」、「下部」、「上方に」、「下方に」、「上に」、「下に」などの用語は、便宜上の語であり、限定的な用語と解釈すべきではない、ということが理解されよう。また、装置およびデバイスという用語は、本文においては、交換可能に使用され得る。
本明細書において使用するとき、「結合された」、「接続された」という用語、および/または類似の用語は、一般的に使用される。これらの用語は同義語として意図されているのではない、ということを理解されたい。そうではなく、「接続された」は、2つ以上のコンポーネントが、例えば、電気的なものを含めて、物理的に直接接触した状態にあることを示すために一般的に使用され、一方、「結合された」は、2つ以上のコンポーネントが、電気的なものを含めて、潜在的に物理的に直接接触した状態にある可能性があることを意味するために一般的に使用される。しかし、「結合された」はまた、2つ以上のコンポーネントが必ずしも直接接触した状態にあるとは限らないが、それでもなお協働および/または相互作用することができる、ということを意味するためにも一般的に使用される。「結合された」という用語はまた、適切な文脈では、例えば、間接的に接続された、を意味するものと一般的に理解される。
本明細書において提示する本開示のさまざまな実施形態および例は、本開示を限定するものではなく本開示を例示するものと理解され、また本開示の範囲に関して非限定的である。
本開示のさらなる特定の好ましい態様が、添付の独立請求項および従属請求項内に記載される。従属請求項の特徴は独立請求項の特徴と、特許請求の範囲に明示的に記載された組み合わせ以外の組み合わせで、適宜組み合わされてよい。
本開示は、システムオンチップ(SoC)などのデータ処理ネットワークにおける効率的なデータ転送を、より少ない応答メッセージを使用するプロトコルを実装することにより達成することを対象とする。このプロトコルは、ハードウェアの形で実装され、ネットワーク相互接続機構におけるメッセージ輻輳を低減させ、それにより、データ処理ネットワークの動作を改善する。
データ処理装置は、性能を拡大し、レーテンシを低減させるために、チップ内に複数のプロセッサデバイスを使用することができる。プログラムまたはタスクは、複数のデバイスによって並列に実行され得る独立したステップに分けることができる。これらのデバイスは、データまたは制御情報を共有する必要があるとき、オンチップ相互接続を通じて互いに通信する。
データは、オフチップで(DRAMなどの)主メモリ内に記憶させることができるが、主メモリは、アクセスに時間がかかり、大量の電力を消費する。他のオンチッププロセッサデバイスによってアクセス可能な、各プロセッサデバイス内のローカルL2キャッシュを使用することによって、効率が改善される。これにより、プロセッサ間通信の速度が上がり、電力消費が低減する。加えて、データは、入力デバイスから処理デバイスにおいて受信されることもあり、処理デバイスから出力に書き出されることもある。
しかし、共有リソースの場合、最新ではないデータつまり古いデータではなく、最新データを任意のプロセッサが確実に得るようにするためのメカニズムが必要となる。1つの手法は、相互接続内の1つまたは複数のホームノードを使用して、キャッシュ内容を常時把握し、メモリアクセス要求を管理する、というものである。ホームノードは、相互接続内にあるかまたは相互接続に取り付けられているとみなすことのできるデータハンドリングモジュールである。各ホームノードは、共有メモリ(またはメモリにマッピングされた入力/出力(I/O)デバイス)の領域に対する要求を管理する。処理デバイスが、適切なホームノードにデータ要求を送信し、ホームノードは、その要求がどのように処理されるかを管理する。処理デバイスは要求ノードと呼ばれる。ホームノードは、全ての要求ノードからの要求を直列化し、それらを順番に実行し、それによって、データの整合性を維持することができる。メモリ空間は、ホームノード間で分割される。
要求ノードは、データにアクセスしたいとき、そのアドレスに関連付けられた相互接続のホームノードに要求を送信する。ホームノードは、例えば、どのノードがローカルキャッシュ内にキャッシュラインのコピーを有しているかの、スヌープフィルタの形態をとるレコードを維持しており、データを要求する、スヌープ要求と呼ばれるメッセージを、1つまたは複数の特定されたノード(ターゲットノード)に送信する。ローカルキャッシュ内に記憶されていないデータは、例えばメモリコントローラを介して主メモリから取り出され得る。ホームノード自体には、メモリアクセスの回数を低減させるために、キャッシュが設けられていてよい。
相互接続は、データ、要求/応答メッセージ、およびスヌープメッセージ用の並列チャネルを提供することができる。
本開示の実施形態によれば、相互接続を介して結合されたいくつかのノードを含むデータ処理装置が、データの整合性を維持するために必要となるメッセージの数を低減させることにより、効率的なデータ転送を行うように構成される。
図1は、さまざまな実施形態による、データ処理装置100のブロック図である。システムオンチップ(SoC)などのデータ処理システムは、複数の処理デバイスおよび共有データリソースを収容することができる。システム100は、例えば、システムオンチップ(SoC)集積回路の形で実装することができる。図示の簡略化された例では、システム100は、いくつかのノードが相互接続システムを介して一緒に接続されたネットワークとして構成される。ノードは、例えばプロセッサ、I/Oデバイス、またはメモリコントローラなどの、機能ブロックまたは機能デバイスである。図示のように、デバイスは、要求ノード102、104、ならびにホームノード106および108を含む。デバイスは相互接続に、相互接続システム110のクロスポイントにおいて結合される。クロスポイントは、メッセージバッファ、およびデバイス間でメッセージをルーティングするのに使用されるスイッチを収容している。システム100は、入力/出力(I/O)デバイス112および114も含む。図を見やすくするため、システムの他の要素は、図1では割愛されている。デバイスは、例えば、処理コア、処理コアクラスタ、グラフィックポストプロセッサ(GPP)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)デバイスとすることができる。図1に示す例では、デバイス102(RN-F)および104(RN-I)は、プロセッサや処理クラスタなどの要求ノードである。デバイス104(RN-I)は、I/Oデバイス114へのインターフェースを提供する。例えば、ペリフェラルコンポーネント相互接続(PCI)エクスプレス対応デバイスとリンクするために、Arm Limited、U.K.によって仕様化されたArm(登録商標) AMBA(登録商標)アドバンストエクステンシブルインターフェース(AXI)が設けられてよい。デバイス106(HN-0)および108(HN-1)は、指定されたシステムアドレス範囲に対する整合点としての働きをするホームノードである。
デバイス102および104は、相互接続システム110を介して、ホームノード(HN)106および108に、互いに、また共有メモリ118にアクセスするためのメモリコントローラ116などのデータリソースに、結合される。デバイス102、104は、データアクセス要求を生成することができ、本明細書では要求ノード(RN)と呼ばれる。複数のノードがデータリソースまたはメモリリソースを共有するとき、整合プロトコルを使用することができ、デバイスは、完全に整合(例えばRN-F)と言うことができる。他のデバイス(例えばRN-I)が、別の集積回路への接続を提供することができる。図を見やすくするため、クロックなど、SoCの多くの要素は、図1から割愛されていることに留意されたい。
例えば「読み出し」や「書き込み」などのデータトランザクションの要求を生成するノードは、要求ノードと呼ばれ、そのようなトランザクションのエンドポイントである。要求に応答するノードは、ターゲットノードと呼ばれる。例えば、図1では、デバイス102および104が要求ノードであり、デバイス106および108がターゲットノードである。要求ノード102および104によって要求されるデータが、ターゲットノード106または108に存在するとき、データは相互接続システム110を介して要求ノードに戻される。データが存在しないとき、データは適切なリソースから取り出される。データが要求ノードによって書き込まれるとき、ホームノードは、確実にオリジナルデータのコピーがシステム内の他のロケーションに残らないようにすることを担い、というのも、これらのコピーは、新たなデータが書き込まれると古くなってしまうためである。
データトランザクションにおいては、要求ノードが、1つまたは複数のパケットを含むメッセージを作成し、それを相互接続に、その送信先に送信するために投入する。パケットは、メモリアドレス、メモリからのデータ、またはその両方を収容することができ、制御ビットまたはルーティングビットを保持することもできる。データ読み出し要求などの制御パケットは、アドレス情報および制御ビットのみを収容することができる。オンチップネットワークでは、「パケット」は、キャッシュ整合性プロトコルなどの上位層プロトコルの、意味のある単位である。パケットサイズが、相互接続110におけるチャネル幅よりも大きいとき、パケットは、複数のピースまたはビートに分割され、その結果、パケットが完全に通過するためにさらに時間がかかる。例えば、パケットが256ビットであり、チャネルが64ビット/サイクルの幅である場合、直列化は4サイクルである。
キャッシュの整合性は、1つもしくは複数のキャッシュ、または他の分散ストレージ、および単一データリソース内のデータを共有する2つ以上のデバイスを収容した、どんなシステムにおいても問題である。キャッシュを収容したシステムに関して、2つの潜在的な問題がある。第1に、キャッシュされるデバイスがコピーした後で、メモリが別のデバイスによって更新されることがある。この時点で、キャッシュ内のデータは、最新ではないかまたは無効であり、最新データをもはや収容していない。第2に、ライトバックキャッシュを収容したシステムは、ローカルにキャッシュされたコピーをデバイスが更新した時点でメモリにはもはや最新データが収容されていない、というケースに対処しなければならない。メモリを読み出す第2のデバイスには、最新ではない(古い)データが見えることになる。キャッシュの整合性は、例えばノード102、104などの処理デバイス間での「スヌープ」メッセージのやりとりを通じて維持され得る。整合性を維持するために、各処理デバイスはスヌープコントロールユニットを含み、スヌープコントロールユニットは、整合性要求および整合性応答、すなわちスヌープメッセージを発行し、他のデバイスから相互接続システム110を介して受信する。
スヌープ要求およびスヌープ応答は、ホームノードによって管理される。ホームノードは、データアクセス要求を受信し、対応するスヌープメッセージを生成し、データを受信または転送する。整合性を確実なものにするためのメッセージおよびデータのやりとりは、整合性アクションと呼ばれる。
図2は、最適化されていないシステムにおける、要求ノードおよびタイムライン202とホームノードおよびタイムライン204との間の例示的書き込みトランザクションのフロー図である。トランザクションは、要求ノードにおける期間T1~T2およびホームノードにおける期間T3~T6を占有する。時間T1において、要求ノードから相互接続システムを介してホームノードに、書き込み要求メッセージ206(WRITE(REQ))が送信される。時間T3に受信される要求に応答してホームノードは、時間T4において、第1の応答メッセージ208(DBID(RSP))を要求ノードに送り返す。応答メッセージ208は、データの受信のためにホームノードにおいてデータバッファが利用可能であること、およびこの書き込み動作の完了が、より新しいどんな書き込み動作にも依存しないことを示す。応答メッセージ208は、データバッファの識別子も示す。書き込み動作に備えて、新鮮ではないデータがローカルキャッシュ内に記憶されないようにすることを確実にすることによって整合性を維持するために、ホームノードは他のノードとスヌープメッセージを介して通信する。この整合性アクションが完了すると、ホームノードは、時間T5において、整合性アクションが完了していることを示すために、第2の応答メッセージ210(COMP(RSP))を送信する。DBID応答208が要求ノードによって受信されると、要求ノードは、データビート212および214によって示されるように、ホームノードにデータを送信することができる。この例では、データは2つのデータビートにおいて転送される。例えば、64バイトの転送は、32バイト相互接続データバス上の2つのデータビートを使用して行われてよい。全てのデータが送信されると、要求ノードは、トランザクションの完了を示すために、ホームノードにCOMP_ACK応答メッセージ216を送信する。したがって、3つの応答メッセージ(208、210、および216)が、各書き込みトランザクションの実施に使用される。
図2に示す手法は、データストリーミングに使用することができる。
図3は、最適化されていないシステムにおける、要求ノードおよびタイムライン302とホームノードおよびタイムライン304との間の例示的書き込みトランザクションのフロー図である。この例では、書き込み要求306が要求ノードから受信されると、ホームノード内でデータバッファが利用可能ではない。ホームノードは、時間T3において、データバッファが利用可能ではないことを示すために、要求ノードに応答メッセージ308(RETRY_ACK)を送信する。時間T4において、ホームノードにおいてデータバッファが利用可能になり、書き込み要求がリトライされてよいことを信号伝達するために、要求ノードにクレジットグラント(CRD_GNT)応答メッセージ310が送信される。次いで、メッセージ206、208、210、212、214、および216が、上で図2を参照して説明したように進行する。したがって、リトライが使用されるとき、2つの要求メッセージ(306、206)および2つのデータメッセージ(212、214)に加えて、5つの応答メッセージ(308、310、208、210、および216)が、各書き込みトランザクションの実施に使用される。
上の説明から、データ処理システムの相互接続機構における応答メッセージフローが輻輳を増大させている、ということが明らかである。これは、ストリーミングデータ転送のケースに、特に当てはまる。輻輳が起こるとき、トランザクションを完了するのに時間がかかり、要求ノードとホームノードの両方のリソースがより長い時間にわたって占有される。その結果として、データ処理システムの性能が劣化する。加えて、多数の応答メッセージが輻輳を引き起こす。これが他の無関係なトランザクションを圧迫することがあり、というのも、応答チャネルはシステム内の他のデバイスと共有されているためである。この輻輳により、システム内の全てのデバイスから見ると、全体的な帯域幅の減少という結果になる。
図4は、本開示の実施形態による、データ処理システムにおける要求ノード102とホームノード106との間の通信を示す図である。要求ノード102は、1つまたは複数の処理コア402、ならびに(1つまたは複数のキャッシュおよびデータバッファなどの)データ記憶404を含む。データ記憶404は、データを受信または送信するために、リンク406を介して外部I/Oデバイスと通信することができ、またコア402およびトランザクションコントローラ408と通信する。要求ノード102は、スヌープコントローラ410も含む。スヌープコントローラ410は、リンク412を介してホームノード106とスヌープメッセージをやりとりする。これらのメッセージは、データ処理システムにおいて整合性を維持するのに必要なアクションを起動する。トランザクションコントローラ408は、リンク414を介してホームノード106とトランザクションメッセージ414をやりとりし、データリンク416を介してホームノード106とデータもやりとりする。リンク412、414、および416は、データ処理ネットワーク内のデバイス同士を結合する相互接続機構によって提供される。個々のメッセージは、相互接続を通じてさまざまな経路をとることができるので、これらのリンクは仮想リンクである。
ホームノード106は、データアクセスの前に、スヌープコントローラ420を使用してデータ処理ネットワーク内の他のデバイスを相手にスヌープメッセージ418を送信および受信することによって、整合性アクションを実行する。ホームノード106は、要求ノードとメッセージをやりとりするためのトランザクションコントローラ422も含む。要求ノード102およびホームノード106の動作については、下で書き込み動作に即して説明する。1つの実施形態では、動作は、トランザクションコントローラ408および422のハードウェアによって実施される。
図5は、本開示の実施形態による、要求ノードおよびタイムライン502とホームノードおよびタイムライン504との間の例示的書き込みトランザクションのフロー図である。本開示の一態様によれば、要求ノードとホームノードは、メッセージ同士を合体させるように協調して働き、それにより、両方向に送信されるメッセージの数を低減させる。最終結果は、書き込み動作において送信されるメッセージの数が2つ低減する、というものである。これにより、ストリーミングデータ書き込みのための帯域幅が大幅に増大する。
ホームノードは、相互接続機構のトランザクション応答チャネル内の輻輳を検出するように構成される。これは、例えば、ネットワーククロスポイントにおけるデータバッファの使用を監視することによって行われ得る。クロスポイントの全てのデータバッファが使用中であるとき、それは、ネットワークが輻輳していることの現れであり、というのも、新たな転送は空きバッファが利用可能になるまで遅延されるためである。本開示から逸脱することなく、相互接続輻輳を検出するための他の方法を使用することができる。例えば、バイポーラプレディクタを使用して、応答チャネルバックプレッシャの履歴を維持し、ヒューリスティクスを使用して、いつ応答メッセージ同士を組み合わせるべきかを決定することができる。図5を参照すると、書き込み要求506が要求ノードからホームノードにおいて受信される。時間T3において、書き込みデータの受信のためにデータバッファが利用可能である。しかし、時間T3において相互接続が輻輳している場合、DBID応答メッセージ508は送信されない。その代わりに、時間T4において整合性アクションが完了するまで、メッセージは遅延される。時間T4において、COMPメッセージとDBIDメッセージとが組み合わされて、COMP_DBID(RSP)と表記された単一メッセージ510になる。したがって、ホームノードからの応答の数は、2から1に低減される。要求ノードは、メッセージ510を受信すると、書き込みデータメッセージとCOMP_ACKメッセージとを組み合わせて、データチャネル上の1つのメッセージにする。WRITE_COMP_ACK(DAT)と表記されたデータおよび応答は、相互接続のデータチャネル上で2つのビート(512および514)として送信される。したがって、応答チャネル上で別途のCOMP_ACKメッセージを送信する必要がなく、それにより、相互接続の応答チャネル上のトラフィックが低減する。加えて、別途のCOMP_ACKメッセージが送信されないので、トランザクションがより迅速に完了し、要求ノード内のリソースが解放される。典型的には、データビートは、データ自体に加えていくつかのビットを収容する。これらのビットは、例えばメタデータおよびルーティング情報を示す。本開示によれば、ビートは、メッセージCOMP_ACKを示す1つまたは複数
のビットを収容する。
図5は、相互接続機構内に輻輳が検出されたときに実施される、データ処理ネットワークにおけるデータ転送方法の一実施形態を示す。輻輳が検出されなかったときは、図2(リトライなし)または図3(リトライあり)に示す方法を使用することができる。書き込み要求が受信されると、ホームノードは、相互接続内の輻輳のレベルを判定し、どのプロトコルを使用するかを選択する。相互接続機構内に輻輳が検出されたとき、図5に示すように、ホームノードから相互接続機構を介して要求ノードに、組み合わせ応答(COMP_DBID)510が送信される。応答は、ホームノードにおいてデータバッファが利用可能になり、かつホームノードが整合性アクションを完了するまで、送信されない。組み合わせ応答510は、データバッファの識別子、および整合性アクションが完了していることを示す標識を含むことができる。
相互接続機構が輻輳していないとき、図2および図3に示すように、ホームノードは、ホームノードにおいてデータバッファが利用可能になると、相互接続機構を介して要求ノードに、第1の応答(DBID)(図2の208)を送信する。次いで、ホームノードは、ホームノードが整合性アクションを完了すると、整合性アクションが完了していることを示すために、相互接続機構を介して要求ノードに、第2の応答(COMP)(図2の210)を送信する。
ホームノード応答は、要求ノードにおいて受信される。応答が組み合わせ応答(COMP_DBID)(図5の510)を含むとき、要求ノードは、完了確認応答メッセージを、ホームノードに書き込まれるデータの1つまたは複数のビートと合体させて、1つまたは複数の合体データビートを形成し、要求ノードから相互接続機構を介してホームノードに、1つまたは複数の合体データビート(512および514)を送信する。しかし、応答が第1の応答を含むとき、書き込まれるデータは、要求ノードから相互接続機構を介してホームノードに、1つまたは複数のデータビート(WRITE)(図2の212および214)として送信される。次いで、完了確認応答メッセージ(図2の216)が送信される。
図6は、本開示の実施形態による、書き込み動作に参加するホームノードの動作の方法600のフローチャートである。開始ブロック602に続き、ブロック604において、新たな書き込み要求がホームノードにおいて受信される。ホームノードは、判定ブロック606において、要求側ノードからのデータの受信のためにホームノードにおいてデータバッファが利用可能になるまで待つ。データバッファが利用可能になると、判定ブロック606からの肯定分岐によって示されるように、判定ブロック608において、リンククレジットの利用可能性が確認される。リンククレジットの利用可能性は、相互接続機構内の輻輳レベルの表れである。リンククレジットが利用可能である場合、判定ブロック608からの肯定分岐によって示されるように、ブロック610において、要求側ノードにDBID応答メッセージが送信される。DBIDメッセージは、要求側ノードからのデータの受信のために利用可能であるデータバッファを識別する。次いで、ブロック612において、ホームノードが書き込みデータを受信し、ブロック614において、方法が終了する。リンククレジットが利用可能ではない場合、判定ブロック608からの否定分岐によって示されるように、ブロック616において、データバッファ識別子(DBID)のためのトラッカが記憶される。ブロック618において、ホームノードが、書き込み要求に関連する整合性アクションが完了する(かつリンククレジットが利用可能になる)まで待つ。整合性アクションが完了すると、判定ブロック618からの肯定分岐によって示されるように、ブロック620において、DBID応答とCOMP応答とが組み合わされて、単一メッセージになり、ブロック622において、要求ノードに送信される。次いで、ブロック612において、ホームノードが書き込みデータを受信し、ブロック614において、方法が終了する。
図6に示す実施形態では、ホームノードが、リンククレジットの利用可能性に基づいて、DBID応答を遅延させ、それをCOMP応答と組み合わせるどうかの判定を行う。オプションで、これらのメッセージは常に組み合わされてもよい。しかし、これらのメッセージが組み合わされるとき、整合性アクションとホームノードにおいてデータをデータバッファに書き込むアクションが直列に実施される。別々のDBIDメッセージとCOMPメッセージが送信されるとき、これらの2つのアクションは並列に実施され得る。したがって、図6に示す実施形態では、メッセージ同士を組み合わせるのは、利益またはそのようにすること(例えば相互接続の輻輳を低減させること)が、不利益(ホームノードへの書き込みの遅延)に勝るときにのみ、使用される。
図7は、本開示の実施形態による、書き込み動作に参加する要求ノードの動作の方法700のフローチャートである。開始ブロック702に続き、ブロック704において、要求ノードが書き込み要求に対する応答を受信する。判定ブロック706において、メッセージがデコードされる。メッセージがCOMPメッセージである場合、判定ブロック706からの、整合性アクションがホームノードによって完了されたことを示す右分岐によって示されるように、フローはブロック704に戻る。応答が組み合わせ応答COMP_DBIDである場合、判定ブロック706からの左分岐によって示されるように、ブロック708において、書き込まれるデータとCOMP_ACK応答とが組み合わされる。ブロック710において、組み合わせられたWRITE_COMP_ACKメッセージが送信される。組み合わせメッセージは、相互接続のデータチャネル経由で送信され、それにより、相互接続の応答チャネル内のトラフィックが低減し得る。ブロック712において、方法が終了する。判定ブロック706からの下方分岐によって示されるように、応答がDBIDである場合、フローは判定ブロック714に進む。要求ノードによってCOMPメッセージが受信されている場合、判定ブロック714からの肯定分岐によって示されるように、フローはブロック708に進み、そこでデータとCOMP_ACKメッセージとが組み合わされる。COMPメッセージがまだ受信されていない場合、判定ブロック714からの否定分岐によって示されるように、ブロック716において、要求ノードからホームノードにデータが送信される。ブロック718において、要求ノードにおいてCOMPメッセージが受信された後でホームにCOMP_ACKが送信される。ブロック712において、方法が終了する。COMPメッセージとDBIDメッセージは、相互接続を通じて異なるルートをとることができるので、順不同で到着し得ることに留意されよう。
図6に示すホームノードのアクションと、図7に示す要求ノードのアクションとが相まって、データ処理システムにおいて書き込み動作を効率的に実行するためのプロトコルの一実施形態が提供される。このプロトコルは、ホームノードおよび要求ノード内の専用ハードウェアによって実施される。
応答メッセージの低減について、下のTable 1(表1)に要約する。
開示した手法の他の利益は、次の通りである。
・COMP_ACKメッセージが別途のメッセージとして送信されないので、ホームノードにおけるトラッカライフタイム(完全なトランザクションにかかる時間)が低減される。
・輻輳状況下で、COMP_ACKメッセージが別途のメッセージとして送信されないので、要求ノードにおけるトラッカライフタイムが低減される。
・輻輳状況下で、相互接続の応答チャネル内のトラフィックが低減され、したがって、他のトランザクションにとって利用可能となる。
・輻輳状況下で、応答チャネルが効率的に利用される結果、システム帯域幅が改善される。
・相互接続における応答メッセージの低減の結果、電力消費が低下する。
本開示は、専用ハードウェアコンポーネントを使用して実装できることを、当業者は認識されよう。加えて、本開示は、プログラムされたプロセッサ、再構成可能なハードウェアコンポーネント、専用ハードウェアコンポーネント、またはそれらの組み合わせを使用して実装することもできる。
専用ハードウェアコンポーネントまたは再構成可能なハードウェアコンポーネントは、ハードウェア記述言語の命令によって、またはコンポーネントおよび接続性のネットリストによって、記述することができる。命令またはネットリストは、本開示から逸脱することなく、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、不揮発性メモリ(NVM)、ハードディスクドライブ、フロッピーディスクドライブ、光ディスクドライブなどの大容量ストレージ、光記憶要素、磁気記憶要素、光磁気記憶要素、フラッシュメモリ、コアメモリ、および/または他の等価な記憶技術などの非一時的コンピュータ可読媒体上に記憶させることができる。そのような代替記憶デバイスは、等価物とみなすべきである。
本明細書において詳細に説明してきたさまざまな代表的実施形態は、限定としてではなく例として提示されている。説明した実施形態の形態および細部に、添付の特許請求の範囲に記載の範囲内に留まる等価な実施形態をもたらす結果となるさまざまな変更を加えられることが、当業者には理解されよう。
一実施形態は、相互接続機構を介して結合されたホームノードおよび要求ノードを備えるデータ処理ネットワークにおけるデータ転送の方法を実現する。この方法は、ホームノードによって、要求ノードから書き込み要求を受信することと、相互接続機構内に輻輳があるかどうかを判定することと、相互接続機構内に輻輳があると判定されたときに、ホームノードにおいてデータバッファが利用可能になり、かつホームノードが整合性アクションを完了すると、ホームノードから相互接続機構を介して要求ノードに、組み合わせ応答を送信することであって、組み合わせ応答が、データバッファの識別子、および整合性アクションが完了していることを示す標識を含む、送信することとを含む。
この方法は、要求ノードによって、書き込み要求に対する応答を受信することであって、応答が、ホームノードから相互接続機構を介して送信される、受信することと、応答が組み合わせ応答を含むときに、要求ノードによって、完了確認応答メッセージを、ホームノードに書き込まれるデータの1つまたは複数のビートと合体させて、1つまたは複数の合体データビートを形成することと、要求ノードから相互接続機構を介してホームノードに、1つまたは複数の合体データビートを送信することとを含んでもよい
加えて、この方法は、相互接続機構内に輻輳が検出されなかったときに、ホームノードにおいてデータバッファが利用可能になると、ホームノードから相互接続機構を介して要求ノードに、第1の応答を送信することであって、第1の応答がデータバッファの識別子を含む、送信することと、ホームノードが整合性アクションを完了すると、相互接続機構を介して要求ノードに、第2の応答を送信することであって、第2の応答が、整合性アクションが完了していることを示す標識を含む、送信することとを含んでもよい
この方法は、応答が第1の応答を含むときに、要求ノードから相互接続機構を介してホームノードに、書き込まれるデータを1つまたは複数のデータビートとして送信することと、要求ノードから相互接続機構を介してホームノードに、完了確認応答メッセージを送信することとを含んでもよい
求ノードからの書き込み要求に応答してホームノードが整合性アクションを実施することをさらに含んでもよく、整合性アクションを実施することが、相互接続機構を介してデータ処理ネットワークの他のノードと1つまたは複数のスヌープメッセージをやりとりすることを含む。
一実施形態において、書き込み要求が、データストリーミングトランザクションの複数の書き込み要求のうちの1つである。
一実施形態において、相互接続機構内に輻輳があるかどうかを判定することが、相互接続機構内のリンククレジットの利用可能性を検出することを含む。
一実施形態において、相互接続機構内に輻輳があるかどうかを判定することが、相互接続機構のクロスポイントにおけるデータバッファの利用可能性を検出することを含む。
互接続機構内に輻輳があるかどうかの判定が、相互接続機構の応答チャネルにおけるバックプレッシャの履歴に依存してもよい
さらなる実施形態は、データ処理ネットワークであって、メモリ領域の範囲のための整合性ポイント(point of coherence)を提供するホームノードであって、第1のトランザクションコントローラを備える、ホームノードと、第2のトランザクションコントローラを備える要求ノードと、要求ノードをホームノードに結合する相互接続機構であって、第1のトランザクションコントローラと第2のトランザクションコントローラとの間のデータチャネルおよび応答チャネルを提供する、相互接続機構とを備え、要求ノードが、ホームノードに書き込み要求を送信することを行うように構成され、ホームノードが、書き込み要求に関連するデータを受信するためのホームノードのデータバッファを識別することと、相互接続機構の応答チャネル内の輻輳を検出することと、相互接続機構の応答チャネル内に輻輳が検出されたときに、書き込み要求に関連する整合性アクションを実施することと、要求ノードに組み合わせメッセージを送信することであって、組み合わせメッセージが、書き込み要求に関連する整合性アクションが完了しているときの識別されたデータバッファの識別子を含む、送信することとを行うように構成される、データ処理ネットワークを提供する
求ノードが、書き込み要求に対する応答を受信することであって、応答が、ホームノードから相互接続機構を介して送信される、受信することと、応答が組み合わせメッセージを含むときに、要求ノードによって、完了確認応答メッセージを、ホームノードに書き込まれるデータの1つまたは複数のビートと合体させて、1つまたは複数の合体データビートを形成することと、要求ノードから相互接続機構を介してホームノードに、1つまたは複数の合体データビートを送信することとを行うように構成されてもよい
ームノードが、相互接続機構の応答チャネル内に輻輳が検出されなかったときに、要求ノードにデータバッファ識別子(DBID)メッセージを送信することと、書き込み要求に関連する整合性アクションを実施することと、書き込み要求に関連する整合性アクションが完了すると、要求ノードに整合性アクション完了(COMP)メッセージを送信することとを行うように構成されてもよい
加えて、要求ノードが、応答がDBIDメッセージを含むときに、要求ノードから相互接続機構を介してホームノードに、書き込まれるデータを1つまたは複数のデータビートとして送信することと、書き込まれるデータを送信することに続いて、要求ノードから相互接続機構を介してホームノードに、完了確認応答メッセージを送信することとを行うように構成されてもよい
ームノードがスヌープコントローラを含んでもよく、ホームノードによって整合性アクションを実施することが、相互接続機構を介してデータ処理ネットワークの他のノードと1つまたは複数のスヌープメッセージをやりとりすることを含む。
求ノードからの書き込み要求が、データストリーミングトランザクションの複数の書き込み要求のうちの1つであってもよい
求ノードが、外部入力デバイスからストリーミングデータを受信するためのインターフェースを含んでもよい
互接続機構がメッシュネットワークを含んでもよい
ータ処理ネットワークを記述したハードウェア記述言語の命令を記憶するためにまたはデータ処理ネットワークのネットリスト記述を記憶するために、非一時的コンピュータ可読媒体が提供されてもよい
100 データ処理装置、システム
102 要求ノード、デバイス
104 要求ノード、デバイス
106 ホームノード(HN)、デバイス、ターゲットノード
108 ホームノード(HN)、デバイス、ターゲットノード
110 相互接続システム、相互接続
112 入力/出力(I/O)デバイス
114 入力/出力(I/O)デバイス
116 メモリコントローラ
118 共有メモリ
202 タイムライン
204 タイムライン
206 書き込み要求メッセージ
208 第1の応答メッセージ、DBID応答、第1の応答(DBID)
210 第2の応答メッセージ、第2の応答(COMP)
212 データメッセージ、データビート(WRITE)
214 データメッセージ、データビート(WRITE)
216 COMP_ACK応答メッセージ、完了確認応答メッセージ
302 タイムライン
304 タイムライン
306 書き込み要求、要求メッセージ
308 応答メッセージ
310 クレジットグラント(CRD_GNT)応答メッセージ
402 処理コア
404 データ記憶
406 リンク
408 トランザクションコントローラ
410 スヌープコントローラ
412 リンク
414 トランザクションメッセージ、リンク
416 データリンク
418 スヌープメッセージ
420 スヌープコントローラ
422 トランザクションコントローラ
502 タイムライン
504 タイムライン
506 書き込み要求
508 DBID応答メッセージ
510 単一メッセージ、組み合わせ応答(COMP_DBID)
512 合体データビート
514 合体データビート
600 方法
700 方法
T1 時間、期間
T3 時間、期間
T4 時間、期間
T5 時間、期間

Claims (18)

  1. 相互接続機構を介して結合されたホームノードおよび要求ノードを備えるデータ処理ネットワークにおけるデータ転送の方法であって、
    前記ホームノードによって、前記要求ノードから書き込み要求を受信するステップと、
    前記相互接続機構内に輻輳があるかどうかを判定するステップと、
    前記相互接続機構内に輻輳があると判定されたときに、
    前記ホームノードにおいてデータバッファが利用可能になり、かつ前記ホームノードが、前記書き込み要求に関連付けられる整合性アクションを完了するとき、前記ホームノードが、相互接続機構を介して、前記ホームノードから前記要求ノードに組み合わせ応答を送信するステップであって、前記組み合わせ応答が、前記データバッファの識別子、前記ホームノードによって生成された識別子、および前記整合性アクションが完了していることを示す標識を含む、送信するステップと、
    を含み、
    前記ホームノードに利用可能なデータバッファが無いとき、または前記ホームノードが前記書き込み要求に関連付けられた前記整合性アクションを完了していないときに、前記ホームノードは、前記ホームノードで前記データバッファが利用可能になり、前記整合性アクションが完了するのを待つ、
    方法。
  2. 前記要求ノードによって、前記書き込み要求に対する応答を受信するステップであって、前記応答が、前記ホームノードから前記相互接続機構を介して送信される、ステップと、
    前記応答が前記組み合わせ応答を含むときに、
    前記要求ノードによって、完了確認応答メッセージを、前記ホームノードに書き込まれるデータの1つまたは複数のビートと合体させて、1つまたは複数の合体データビートを形成するステップと、
    前記要求ノードから前記相互接続機構を介して前記ホームノードに、前記1つまたは複数の合体データビートを送信するステップと
    をさらに含む、請求項1に記載の方法。
  3. 相互接続機構を介して結合されたホームノードおよび要求ノードを備えるデータ処理ネットワークにおけるデータ転送の方法であって、
    前記ホームノードによって、前記要求ノードからの書き込み要求を受信するステップと、
    前記相互接続機構内に輻輳があるかどうかを判定するステップと、
    前記相互接続機構内に輻輳があると判定されたときに、
    前記ホームノードでデータバッファが利用可能であり、前記ホームノードが整合性アクションを完了した場合に、前記ホームノードから前記相互接続機構を介して前記要求ノードに組み合わせ応答を送信するステップであって、前記組み合わせ応答は、前記データバッファの識別子と、前記整合性アクションが完了したことの表示とを含む、ステップと、
    前記相互接続機構内に輻輳が検出されなかったときに、
    前記ホームノードにおいて前記データバッファが利用可能になるときに、前記ホームノードから前記相互接続機構を介して前記要求ノードに、第1の応答を送信するステップであって、前記第1の応答が前記データバッファの識別子を含む、ステップと、
    前記ホームノードが前記整合性アクションを完了するときに、前記相互接続機構を介して前記要求ノードに、第2の応答を送信するステップであって、前記第2の応答が、前記整合性アクションが完了していることを示す標識を含む、ステップと
    を含む、方法。
  4. 前記相互接続機構内に輻輳が検出されず、前記ホームノードで前記データバッファが利用可能であるときに、
    前記要求ノードから前記相互接続機構を介して前記ホームノードに、前記書き込まれるデータを1つまたは複数のデータビートとして送信するステップ
    さらに含む、請求項3に記載の方法。
  5. 前記要求ノードからの前記書き込み要求に応答して前記ホームノードが前記整合性アクションを実施するステップをさらに含み、前記整合性アクションを実施するステップが、前記相互接続機構を介して前記データ処理ネットワークの他のノードと1つまたは複数のスヌープメッセージをやりとりすることを含む、請求項1から4のいずれか一項に記載の方法。
  6. 前記書き込み要求が、データストリーミングトランザクションの複数の書き込み要求のうちの1つである、請求項1から5のいずれか一項に記載の方法。
  7. 前記相互接続機構内に輻輳があるかどうかを判定するステップが、前記相互接続機構内のリンククレジットの利用可能性を検出するステップを含む、請求項1から6のいずれか一項に記載の方法。
  8. 前記相互接続機構内に輻輳があるかどうかを判定するステップが、前記相互接続機構のクロスポイントにおけるデータバッファの利用可能性を検出するステップを含む、請求項1から7のいずれか一項に記載の方法。
  9. 前記相互接続機構内に輻輳があるかどうかを判定するステップが、前記相互接続機構の応答チャネルにおけるバックプレッシャの履歴に依存する、請求項1から8のいずれか一項に記載の方法。
  10. データ処理ネットワークであって、
    メモリ領域の範囲に対する整合性ポイントを提供するホームノードであって、第1のトランザクションコントローラを備える、ホームノードと、
    第2のトランザクションコントローラを備える要求ノードと、
    前記要求ノードを前記ホームノードに結合する相互接続機構であって、前記第1のトランザクションコントローラと前記第2のトランザクションコントローラとの間のデータチャネルおよび応答チャネルを提供する、相互接続機構と
    を備え、
    前記要求ノードが、前記ホームノードに書き込み要求を送信することを行うように構成され、
    前記ホームノードが、
    前記書き込み要求に関連するデータを受信するための前記ホームノードのデータバッファを識別することと、
    前記相互接続機構の前記応答チャネル内の輻輳を検出することと、
    前記相互接続機構の前記応答チャネル内に輻輳が検出されたときに、
    前記書き込み要求に関連する整合性アクションを実施することと、
    前記要求ノードに組み合わせメッセージを送信することであって、前記組み合わせメッセージが、前記書き込み要求に関連する前記整合性アクションが完了しているときの前記識別されたデータバッファの識別子を含む、前記送信することと、
    前記相互接続機構の前記応答チャネル内に輻輳が検出されなかったときに、
    前記要求ノードにデータバッファ識別子(DBID)メッセージを送信することと、
    前記書き込み要求に関連する整合性アクションを実施することと、
    前記書き込み要求に関連する前記整合性アクションが完了するときに、前記要求ノードに整合性アクション完了(COMP)メッセージを送信することとを行うように構成される、データ処理ネットワーク。
  11. 前記要求ノードが、
    前記書き込み要求に対する応答を受信することであって、前記応答が、前記ホームノードから前記相互接続機構を介して送信される、前記受信することと、
    前記応答が前記組み合わせメッセージを含むときに、
    前記要求ノードによって、完了確認応答メッセージを、前記ホームノードに書き込まれるデータの1つまたは複数のビートと合体させて、1つまたは複数の合体データビートを形成することと、
    前記要求ノードから前記相互接続機構を介して前記ホームノードに、前記1つまたは複数の合体データビートを送信することと
    を行うようにさらに構成される、請求項10に記載のデータ処理ネットワーク。
  12. 前記要求ノードが、
    前記相互接続機構の前記応答チャネル内に輻輳が検出されないときに、
    前記要求ノードから前記相互接続機構を介して前記ホームノードに、前記書き込まれるデータを1つまたは複数のデータビートとして送信することと、
    記要求ノードから前記相互接続機構を介して前記ホームノードに、前記書き込まれるデータが前記ホームノードに送信されたことを示す完了確認応答メッセージを送信することと
    を行うようにさらに構成される、請求項10に記載のデータ処理ネットワーク。
  13. 前記ホームノードがスヌープコントローラをさらに備え、前記ホームノードによって前記整合性アクションを実施することが、前記相互接続機構を介して前記データ処理ネットワークの他のノードと1つまたは複数のスヌープメッセージをやりとりすることを含む、請求項10、11、及び12のいずれか一項に記載のデータ処理ネットワーク。
  14. 前記要求ノードからの前記書き込み要求が、データストリーミングトランザクションの複数の書き込み要求のうちの1つである、請求項10、11、12、及び13のいずれか一項に記載のデータ処理ネットワーク。
  15. 前記要求ノードが、外部入力デバイスからストリーミングデータを受信するためのインターフェースをさらに備える、請求項14に記載のデータ処理ネットワーク。
  16. 前記相互接続機構がメッシュネットワークを備える、請求項10、11、及び12から15のいずれか一項に記載のデータ処理ネットワーク。
  17. 請求項10、11、及び12から16のいずれか一項に記載のデータ処理ネットワークを記述したハードウェア記述言語の命令を記憶した、非一時的コンピュータ可読媒体。
  18. 請求項10、11、及び12から16のいずれか一項に記載のデータ処理ネットワークのネットリスト記述を記憶した、非一時的コンピュータ可読媒体。
JP2020561628A 2018-05-03 2019-05-02 ストリーミングデータ転送のためのフロー圧縮を用いたデータ処理ネットワーク Active JP7419261B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GR20180100189A GR20180100189A (el) 2018-05-03 2018-05-03 Δικτυο επεξεργασιας δεδομενων με συμπυκνωση ροης για μεταφορα δεδομενων μεσω streaming
GR20180100189 2018-05-03
PCT/GB2019/051217 WO2019211611A1 (en) 2018-05-03 2019-05-02 Data processing network with flow compaction for streaming data transfer

Publications (2)

Publication Number Publication Date
JP2021522608A JP2021522608A (ja) 2021-08-30
JP7419261B2 true JP7419261B2 (ja) 2024-01-22

Family

ID=64901600

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020561628A Active JP7419261B2 (ja) 2018-05-03 2019-05-02 ストリーミングデータ転送のためのフロー圧縮を用いたデータ処理ネットワーク

Country Status (6)

Country Link
US (1) US11483260B2 (ja)
EP (1) EP3788493B1 (ja)
JP (1) JP7419261B2 (ja)
CN (1) CN112074822B (ja)
GR (1) GR20180100189A (ja)
WO (1) WO2019211611A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114731282B (zh) 2019-11-22 2023-06-02 华为技术有限公司 处理非缓存写数据请求的方法、缓存器和节点
US20210011864A1 (en) * 2020-09-25 2021-01-14 Francesc Guim Bernat System, apparatus and methods for dynamically providing coherent memory domains
US11768630B1 (en) * 2021-10-27 2023-09-26 Amazon Technologies, Inc. Credit based memory scheduler

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150178209A1 (en) 2013-12-20 2015-06-25 International Business Machines Corporation Frequency determination across an interface of a data processing system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864671A (en) 1996-07-01 1999-01-26 Sun Microsystems, Inc. Hybrid memory access protocol for servicing memory access request by ascertaining whether the memory block is currently cached in determining which protocols to be used
US6338122B1 (en) * 1998-12-15 2002-01-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node
US6763434B2 (en) * 2000-12-30 2004-07-13 International Business Machines Corporation Data processing system and method for resolving a conflict between requests to modify a shared cache line
GB0227871D0 (en) * 2002-11-29 2003-01-08 Ibm DATA processing systems
US7779210B2 (en) 2007-10-31 2010-08-17 Intel Corporation Avoiding snoop response dependency
US8250311B2 (en) 2008-07-07 2012-08-21 Intel Corporation Satisfying memory ordering requirements between partial reads and non-snoop accesses
US8949500B2 (en) * 2011-08-08 2015-02-03 Lsi Corporation Non-blocking processor bus bridge for network processors or the like
US8799586B2 (en) 2009-09-30 2014-08-05 Intel Corporation Memory mirroring and migration at home agent
GB2484088B (en) 2010-09-28 2019-08-07 Advanced Risc Mach Ltd Coherency control with writeback ordering
US8949547B2 (en) 2011-08-08 2015-02-03 Arm Limited Coherency controller and method for data hazard handling for copending data access requests
US8775904B2 (en) 2011-12-07 2014-07-08 International Business Machines Corporation Efficient storage of meta-bits within a system memory
US9106229B1 (en) * 2013-03-14 2015-08-11 Altera Corporation Programmable interposer circuitry
US20150261677A1 (en) 2014-03-12 2015-09-17 Silicon Graphics International Corp. Apparatus and Method of Resolving Protocol Conflicts in an Unordered Network
US20160179161A1 (en) * 2014-12-22 2016-06-23 Robert P. Adler Decode information library
US11082347B2 (en) * 2018-03-26 2021-08-03 Nvidia Corporation Techniques for reducing congestion in a computer network
US10452593B1 (en) 2018-05-03 2019-10-22 Arm Limited High-performance streaming of ordered write stashes to enable optimized data sharing between I/O masters and CPUs
US10613996B2 (en) 2018-05-03 2020-04-07 Arm Limited Separating completion and data responses for higher read throughput and lower link utilization in a data processing network
US10917198B2 (en) 2018-05-03 2021-02-09 Arm Limited Transfer protocol in a data processing network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150178209A1 (en) 2013-12-20 2015-06-25 International Business Machines Corporation Frequency determination across an interface of a data processing system

Also Published As

Publication number Publication date
CN112074822B (zh) 2024-06-11
EP3788493A1 (en) 2021-03-10
WO2019211611A1 (en) 2019-11-07
US20210126877A1 (en) 2021-04-29
JP2021522608A (ja) 2021-08-30
US11483260B2 (en) 2022-10-25
EP3788493B1 (en) 2023-02-22
CN112074822A (zh) 2020-12-11
GR20180100189A (el) 2020-01-22

Similar Documents

Publication Publication Date Title
US10157134B2 (en) Decreasing the data handoff interval for a reserved cache line based on an early indication of a systemwide coherence response
US6279084B1 (en) Shadow commands to optimize sequencing of requests in a switch-based multi-processor system
US6014690A (en) Employing multiple channels for deadlock avoidance in a cache coherency protocol
KR100465583B1 (ko) 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법
US6085276A (en) Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies
US6154816A (en) Low occupancy protocol for managing concurrent transactions with dependencies
US6249520B1 (en) High-performance non-blocking switch with multiple channel ordering constraints
US6122714A (en) Order supporting mechanisms for use in a switch-based multi-processor system
US6101420A (en) Method and apparatus for disambiguating change-to-dirty commands in a switch based multi-processing system with coarse directories
US6108752A (en) Method and apparatus for delaying victim writes in a switch-based multi-processor system to maintain data coherency
KR100324975B1 (ko) 잠재적인 제3 노드 트랜잭션을 버퍼에 기록하여 통신 대기시간을 감소시키는 비균일 메모리 액세스(numa) 데이터 프로세싱 시스템
JP7419261B2 (ja) ストリーミングデータ転送のためのフロー圧縮を用いたデータ処理ネットワーク
JP2000227908A (ja) 共用介入サポ―トを有する不均等メモリ・アクセス(numa)デ―タ処理システム
US10152417B2 (en) Early freeing of a snoop machine of a data processing system prior to completion of snoop processing for an interconnect operation
US10437725B2 (en) Master requesting missing segments of a cache line for which the master has coherence ownership
US7451231B2 (en) Data processing system, method and interconnect fabric for synchronized communication in a data processing system
CN112074821A (zh) 在数据处理网络中分离完成和数据响应,以实现更高的读取吞吐量和更低的链接利用率
US20190138630A1 (en) Techniques for implementing a split transaction coherency protocol in a data processing system
JP7284191B2 (ja) データ処理ネットワーク内の転送プロトコル
US7254694B2 (en) Processors interconnect fabric with relay broadcasting and accumulation of partial responses
MXPA99006144A (en) Data processing system for non-uniform memory access data introducing potential intermediate memories third-node transactions to decrease communicate waiting time

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210105

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231129

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: 20231211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240110

R150 Certificate of patent or registration of utility model

Ref document number: 7419261

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150