JP6189898B2 - アクティブメッセージによるrmaapiのサポート - Google Patents

アクティブメッセージによるrmaapiのサポート Download PDF

Info

Publication number
JP6189898B2
JP6189898B2 JP2015148205A JP2015148205A JP6189898B2 JP 6189898 B2 JP6189898 B2 JP 6189898B2 JP 2015148205 A JP2015148205 A JP 2015148205A JP 2015148205 A JP2015148205 A JP 2015148205A JP 6189898 B2 JP6189898 B2 JP 6189898B2
Authority
JP
Japan
Prior art keywords
data
remote
read
rma
write
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
JP2015148205A
Other languages
English (en)
Other versions
JP2016053946A (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 JP2016053946A publication Critical patent/JP2016053946A/ja
Application granted granted Critical
Publication of JP6189898B2 publication Critical patent/JP6189898B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

分散メモリ構成を備えるコンピュータシステム(例えばクラスタ)において、各コンピューティングノードは、それ自体に取り付けられたローカルメモリに対するダイレクトアクセスを有する。他のノードに取り付けられたメモリは、リモートメモリと呼ばれる。大抵、リモートメモリは直接アクセス可能ではなく、ノード間で通信するためにメッセージパッシングメカニズムが使用される。
リモートメモリアクセス(RMA)は、リモートメモリに直接アクセスすることができる印象を与えるソフトウェアインターフェースをさす。多くの形態のRMAオペレーションがあるが、最終的に、RMAオペレーションは、読み出し及び書き込みの2つに要約することができる。読み出しオペレーションは、リモートメモリアドレス範囲からローカルバッファにデータをコピーする。書き込みオペレーションは、ローカルバッファからリモートメモリアドレス範囲にデータをコピーする。
既存のリモートメモリアクセス(RMA)実装は、一般に、2つのカテゴリに該当する。第1のカテゴリに対応する実装は、コンピュータノード間における下層のインターコネクトファブリックのリモートダイレクトメモリアクセス(RDMA)能力を使用する。Mellanoxなどが提供するInfiniBand(IB)ホストコントローラアダプタ(HCA)は、ハードウェアにおいてRDMA機能をサポートする。上記能力は、IB Verbと呼ばれるソフトウェアインターフェースを介してアプリケーションに公開される。IB verbでは、RMAオペレーションを実行するために、ユーザがワーク要求を作成し、それをワークキューに投じる。それから、HCAがキューを処理し、ハードウェアにおいてRDMAを実行する。第2のカテゴリにより使用されるアプローチは、通常のメッセージパッシングインターフェース(MPI)を通じてRMA機能をエミュレートすることである。一例は、MPICH/MPICH2(ハイパフォーマンスMPI)における一方的な(one-sided)オペレーションの実装である。これは、しばしば、要求‐応答方式において行われる。RMAオペレーションの非同期性に起因して、要求が処理されることを確保するのに別個のスレッドが大抵必要とされる。
既存のRMA実装は多くの欠点を有する。RDMAベースの実装下において、特殊なハードウェアが必要とされる。メッセージパッシングベースの実装下において、関連するメッセージに関係するさらなるトラフィックがインターコネクトファブリックを通じて転送されなければならず、ゆえに、ファブリックの有効な帯域幅を低減させることになる。
本発明が添付の図面を併用して下記の詳細な説明を参照することによってより理解されるとき、本発明に係る前述の態様及び付随する利点の多くがより容易に十分理解されるであろう。図面において、同様の参照番号は、特にその他の方法で指定されない限り、様々なビューにわたって同様の部分をさす。
一実施形態に従う、AM書き込み要求ハンドラの使用を通してデータのブロックがリモートノードのアドレス空間に書き込まれるRMA書き込みを例示する概略図である。 一実施形態に従う、AM読み出し要求ハンドラ及びAM読み出し応答ハンドラの使用を通してデータのブロックがリモートノードのアドレス空間から読み出されるRMA読み出しを例示する概略図である。 一実施形態に従う、図1aに示されるスキームを使用してデータが複数のパケットを介して転送されるRMA書き込み実施を例示する概略図である。 一実施形態に従う、図1bに示されるスキームを使用してデータが複数のパケットを介して転送されるRMA読み出し実施を例示する概略図である。 一実施形態に従う、AM要求の後に続く送信オペレーションの使用を通してデータのブロックがリモートノードのアドレス空間に書き込まれるタグ付きメッセージRMA書き込みを例示する概略図である。 一実施形態に従う、AM読み出し要求ハンドラ、RMA進行モジュール及びRMA読み出しモジュールの使用を通してデータのブロックがリモートノードのアドレス空間から読み出されるタグ付きメッセージRMA読み出しを例示する概略図である。 ローカルノードとリモートノードとにおける、アクセスキー交換及びメモリ登録オペレーションに対応するメッセージの交換を例示するタイムフロー図である。 本明細書に開示される実施形態に従うローカルノードオペレーション及びリモートノードオペレーションの態様を容易にするように構成されたノードアーキテクチャのブロック概略図である。
本明細書において、アクティブメッセージ(AM)を通じてRMAアプリケーションプログラミングインターフェース(API)を実施する方法、装置及びソフトウェアの実施形態が開示される。下記の説明において、本明細書に開示され、例示される実施形態の深い理解を提供するように、多数の特定の詳細が明記される。しかしながら、本発明は上記特定の詳細のうち1又は複数なしに、あるいは他の方法、コンポーネント、材料等を用いて実施され得ることを、当業者は認識するであろう。他の例において、本発明の態様を分かりにくくすることを回避するために、周知の構造、材料又はオペレーションは詳細には示されず、あるいは説明されない。
本明細書において、明りょうさのために、図面内の個々のコンポーネントは、特定の参照番号によってではなく図面内の該コンポーネントのラベルによっても参照される。さらに、(特定コンポーネントとは対照的に)特定タイプのコンポーネントを参照する参照番号は、参照番号の後に「典型」を意味する“(typ)”が続くもので示されることがある。上記コンポーネントの構成は、存在し得るが簡潔さ及び明りょうさのために図面に示されない同様のコンポーネント、又はそうでなければ別個の参照番号でラベル付けされていない同様のコンポーネントの典型であることが理解されるであろう。反対に、“(typ)”は、コンポーネント、要素等がその開示された機能、実装、目的等のために典型的に使用されることを意味するものとみなされるべきではない。
本明細書に開示される実施形態の態様下において、RMAを使用してデータがリモートノードにおけるメモリに書き込まれ、あるいは該メモリから読み出されるRMA書き込み及び読み出しオペレーションを容易にするように、アクティブメッセージ技法が実施される。AMの基本的な考え方は、メッセージが到着したときにコードがターゲット側において自動的に実行されることを可能にすることである。このコードはAMハンドラと呼ばれる。複数のAMハンドラがAMメカニズムに予め登録されてもよく、AMメッセージは、AMハンドラのための対応する識別子を指定することによって複数のAMハンドラのうちいずれかを参照することができる。AMメッセージは要求又は応答のいずれかであってよく、その双方が、データに加えていくらかの追加制御情報を運ぶことができ、指定されたハンドラの実行を引き起こすことができる。AM要求は、AMハンドラの内部以外のどこでも発行されることができるが、AM応答は、AMハンドラの内部でのみ発行されることができ、最大で、AM要求ごとに1つの応答が発行されてよい。
本明細書に開示される実施形態の態様下において、アクティブメッセージハンドラは、対応するAM要求又は応答がそのターゲットに到着したとき、自動的に実行される。このことは、RMAオペレーションに必要とされる必要な非同期処理メカニズムを提供する。基本的に、RMA書き込みオペレーションは、ソースバッファからデータを運ぶAM要求と、該データをターゲットアドレスにコピーするAMハンドラとで実施することができる。RMA読み出しオペレーションは、ターゲットアドレス情報を運ぶAM要求と、AM応答を介してデータを送り返すAMハンドラと、該データを宛先バッファにコピーする別のAMハンドラとで実施することができる。
図1a及び図1bは、一実施形態に従う、ローカルノード100とリモートノード102との間でデータのブロックを転送する書き込み及び読み出しAMメカニズムを例示する。図1aに示されるとおり、ローカルノード100は、ソースバッファ(src_buf)104とRMA書き込み(rma_write())モジュール106とAM書き込み応答ハンドラ108とを含む。リモートノード102は、AM書き込み要求ハンドラ110とRMAアドレス空間112とを含む。ローカルノード100は、インターコネクト114を介してリモートノード102に通信可能に結合される。
ソースバッファ104からRMAアドレス空間112へのソースデータ116のブロックのRMA書き込みは、下記のとおり進む。ソースデータ116が、RMA書き込みモジュール106を介してソースバッファ104から読み出され、RMA書き込みモジュールは、インターコネクト114を通じてAMハンドラ110に送信されるAM書き込み要求118を生成する。AM書き込み要求118は、ソースデータ116と、ソースデータ116が書き込まれるべきリモートメモリ範囲に関する情報とを含む。これは、データ116の先頭が書き込まれるべきRMAアドレス空間112における開始アドレス(rma_addr)を含み、サイズ(長さ)、アクセスキー及び/又はメッセージタグを場合により含んでもよい。それから、ターゲット側におけるAM書き込み要求ハンドラ(AM書き込み要求ハンドラ110)が、DMA又はメモリコピーオペレーション120を介して、アドレスrma_addrで始まるRMAアドレス空間112にソースデータ116をコピーする。一実施形態において、AM書き込み要求ハンドラ110がRMAアドレス空間112へのソースデータ116のコピーを完了したとき、完了イベントが所望される場合、任意的なAM書き込み応答122がイニシエータ(ローカルノード100)に送り返されてもよい。例示されるとおり、AM書き込み応答122はAM書き込み応答ハンドラ108に向けられ、AM書き込み応答ハンドラ108は完了イベントを扱うように構成される。
図1bは、RMA読み出しオペレーションに関連してローカルノード100及びリモートノード102により用いられるさらなるリソース及びAMを示す。これには、宛先バッファ(dest_buf)124とRMA読み出し(rma_read())モジュール126とローカルノード100のためのAM読み出し応答ハンドラ128とリモートノード102のためのAM読み出し要求ハンドラ130とを含む。一実施形態において、AM書き込み応答ハンドラ108とAM読み出し応答ハンドラ128とは、同じAMハンドラに対応する。同様にして、一実施形態において、AM書き込み要求ハンドラ110とAM読み出し要求ハンドラ130とは、同じAMハンドラに対応する。
RMA読み出しオペレーションのオペレーションは、下記のとおり進む。RMA読み出しAPI126が、読み出されるべきデータ(例えばリモートデータ134)が記憶されているrma_addrで始まるリモートアドレス範囲を識別するAM読み出し要求132をAM読み出し要求ハンドラ130に送信する。一実施形態において、AM読み出し要求132は、開始アドレス(rma_addr)及び長さを含み、さらにアクセスキー及び/又はメッセージタグを含んでもよい。AM読み出し要求132を受信することに応答して、AM読み出し要求ハンドラ130は、AM読み出し応答ハンドラ128に向けられるAM読み出し応答136を介して、リモートノード102からローカルノード100にリモートデータ134のコピーを送信する。AM読み出し応答136の受信に応じて、AM読み出し応答ハンドラ128は、リモートデータ134のコピーを抽出し、DMA又はメモリコピー138を実行してリモートデータ134のコピーを宛先バッファ124に書き込み、RMA読み出しオペレーションを完了する。
一般に、AMメカニズムは、単一のAMメッセージを介して転送することができるデータの量に関する制限を有することがある。こうした制限を克服するために、単一のAMメッセージについての制限より大きい量のデータは、より小さいデータ単位(例えばパケット)へと分割され、パイプライン方式で転送されてもよい。図2a及び図2bは、上記技法を使用してインターコネクト204を通じてローカルノード200とリモートノード202との間のデータの転送をもたらすRMA読み出し及びRMA書き込みオペレーションの例を例示する。
図2aに示されるとおり、ローカルノード200は、複数のスロット208を有するソースバッファ206と、RMA書き込みモジュール210と、AM書き込み応答ハンドラ212とを含む。リモートノード202は、AM書き込み要求ハンドラ214と、複数のスロット218に区分されたRMAメモリ空間216とを含む。
パイプライン型(pipelined)RMA書き込みは、下記のとおり進む。ソースバッファ206におけるそれぞれのスロットに記憶されたデータが、RMA書き込みモジュール210を介してアクセスされ、それぞれのAM書き込み要求222を介して複数のパケット220として転送される。上述と同様に、一実施形態において、各AM書き込み要求222は、開始アドレス(rma_addr)と、任意的な長さ、アクセスキー及び/又はメッセージタグとを含む。AMハンドラ214による受信に応じて、各AM要求222が処理され、RMAアドレス空間216におけるrma_addrで始まる対応するアドレス範囲にデータを書き込むそれぞれのメモリコピー224の生成をもたらす。完了イベントを採用する実施形態において、1又は複数のAM書き込み応答226がAMハンドラ212に返される。例えば、AM書き込み応答は、完了したパケット書き込みごとに返されてもよく、あるいは、AM書き込み応答は、送信されるパケットの数にかかわらず、所与のソースデータ転送について単一のAM書き込み応答226を提供するなどして、複数のパケット書き込みの完了を裏付けてもよい。
例示目的のために、パケット220ごとのソースデータの部分がソースバッファ206のそれぞれのスロット208に記憶され、RMAアドレス空間216のそれぞれのスロット218に書き込まれるように表されている。しかしながら、ソースバッファ206及び/又はRMAアドレス空間216は複数のスロットに区分される必要はなく、データを記憶することができる1又は複数のアドレス空間として一般に構成されてもよいことが認識されるであろう。さらに、各パケット220のサイズは同じであってもよく、あるいは、異なるサイズが使用されてもよい。例えば、一実施形態において、パケットは、使用されるインターコネクト204により使用される下層のトランスポートプロトコルに適用可能な最大転送単位(MTU)を採用する(最後のパケットはMTU未満のサイズを有し得ることに留意する)。同時に、パケットに含まれるデータは、複数のパケットを介して転送されることになるソースデータのブロックを複製するように、RMAアドレス空間216に書き込まれるべきである。一実施形態において、パケットデータは順番に書き込まれる。他の実施形態において、順序がばらばらの書き込みが長い間許可され、完了に応じて、書き込まれたデータブロックがソースデータブロックの複製を構成する。
図2bに示されるとおり、ローカルノード200は、複数のスロット230を有する宛先バッファ228と、RMA読み出しモジュール232と、AM読み出し応答ハンドラ234とをさらに含む。リモートノード202は、AM読み出し要求ハンドラ236をさらに含む。マルチパケットRMA書き込みと同様に、データはRMA読み出しモジュール232を介して複数のパケットを使用して転送される。各パケット転送は、図1bのRMA読み出しのためのデータブロック転送と同様であり、下記のとおり進む。RMA読み出しモジュール232は、AM読み出し要求ハンドラ236により扱われることをターゲットとしたAM読み出し要求240を送信する。各AM読み出し要求240は、読み出されるべきリモートデータが記憶されているrma_addrで始まるリモートアドレス範囲を識別する。上述と同様に、一実施形態において、AM読み出し要求240は、開始アドレス(rma_addr)及び長さと、任意的なアクセスキー及び/又はメッセージタグとを含む。
各AM読み出し要求240を受信することに応答して、AM読み出し要求ハンドラ236は、AM読み出し応答ハンドラ234に向けられるAM読み出し応答242を介して、リモートノード202からローカルノード200に、パケット241を含むリモートデータの部分のコピーを送信する。各AM読み出し応答242の受信に応じて、AM読み出し応答ハンドラ234は、パケット241の中のリモートデータのコピーを抽出し、DMA又はメモリコピー244を実行して、パケット241を介して転送されたリモートデータのコピーを宛先バッファ228における対応するスロット230に書き込み、このパケットについてのRMA読み出しオペレーションを完了する。図2aに表され上記で論じられたマルチパケット読み出しオペレーションと同様に、宛先バッファ228とRMAアドレス空間216とに関するスロットの使用は例示目的のためであり、いくつかの実施形態において、パケットのサイズは変化してもよい。
パケットサイズは、パイプライン型実装を介して達成可能な最大帯域幅の制限要因になる可能性がある。しかしながら、タグを付けられた(タグ付き)メッセージパッシングメカニズムが利用可能である場合、こうしたメカニズムを利用することによって、大量データ転送のためのさらなるパフォーマンス向上を達成することができる。タグ付きメッセージパッシングは、メッセージパッシングが片側における送信とその反対側における受信とで実行される点において、通常のメッセージパッシングと同様である。しかしながら、タグ付きメッセージパッシングは各メッセージにタグをさらに取り付け、したがって受信側は、どのメッセージを受信するかを選ぶことができる。このことは、単一の通信チャネルを複数のチャネルに効率的に変える。一実施形態において、タグは、種々のRMAオペレーションを識別してペアの送信及び受信オペレーション間の1対1マッチングを確保するように使用される。
図3a及び図3bは、タグ付きメッセージを使用した読み出し及び書き込みオペレーションの例を例示する。図3aのタグ付きメッセージ書き込みオペレーションに示されるとおり、ソースデータのブロックが、インターコネクト304を介してローカルノード300からリモートノード302に転送される。さらに詳細には、ローカルノード300は、ソースデータが記憶されているソースバッファ306と、RMA書き込みモジュール308とを含み、リモートノード302は、AM書き込み要求ハンドラ310とRMA進行モジュール312とRMAアドレス空間314とを含む。
タグ付きメッセージ書き込みオペレーションは、下記のとおり進む。RMA書き込みは、AM書き込み要求316の後に送信オペレーション318が続くことを含む。AM書き込み要求316は、いかなるデータペイロードもなくリモートアドレス範囲に関する情報だけを運び、むしろ送信データ320は、後の送信オペレーション318を介して転送される。AM書き込み要求316の受信に応じて、AMハンドラ310は、対応するRMA書き込み要求を生成し、エンキューオペレーション322を介してRMA書き込み要求をRMAキュー324に入れる。エンキューされたRMA書き込み要求が、デキューオペレーション326の後、RMA進行モジュール312によって後から処理されるとき、AM書き込み要求316により提供されたリモートアドレス範囲をRMAアドレス空間314における受信バッファとして、受信オペレーション328が発行される。この受信オペレーションは、イニシエータ側(すなわちローカルノード300)において投じられた(posted)送信320とマッチし、RMAアドレス空間314における意図されたリモートアドレス範囲にソースデータを取得しなければならない。一般に、AM書き込み要求を送信することと対応するデータの送信とは非同期であってよいが、好ましくは、AM書き込み要求はその関連するデータ送信に先行するべきである。一実施形態において、受信オペレーション328は、送信データ320のブロックを、RMAアドレス空間314に書き込まれる前に、一時的にバッファしてもよい。
図3bに示されるとおり、ローカルノード300は、宛先バッファ330とRMA読み出しモジュール332とをさらに含み、これらは下記のタグ付きメッセージ読み出しオペレーションを容易にするように構成される。タグ付きメッセージ書き込みオペレーションと同様に、RMA読み出しは、AM読み出し要求を受けての受信オペレーションを含み、AM読み出し要求ハンドラは、送信オペレーションがターゲット側において発行されることを引き起こすことになる。大抵、メッセージパッシングオペレーションはAMハンドラの内部で発行されることができないため、ターゲット側におけるRMAキューが必要とされる。
図3bに例示されるとおり、RMA読み出しモジュール332はAM読み出し要求334を発行し、AM読み出し要求334は、リモートノード302におけるAM読み出し要求ハンドラ336に向けられ、AM読み出し要求ハンドラ336によって受信される。AM読み出し要求ハンドラ336は、対応するRMA読み出し要求を生成し、該読み出し要求をRMA読み出し要求キュー338にエンキューし、一方、RMA進行モジュール312における送信ブロック340は、RMA読み出し要求キュー338から読み出し要求をデキューし、RMAアドレス空間314から対応するデータを取り出し、該データを送信オペレーション342を介してRMA読み出しモジュール332の受信オペレーション344に送信する。それから、受信オペレーション344は、上記データを宛先バッファ330に書き込み、リモート読み出しオペレーションを完了する。
使用される具体的なアプローチに依存して、前述の実施形態に従うRMA書き込み及び読み出しオペレーションに使用すべき(1又は複数の)メモリアドレス空間は、前もって登録を必要としてもよく、しなくてもよい。例えば、いくつかの実施形態はPSM(Performance Scaled Messaging)を採用し、PSMはメモリ登録を必要としない。PSMは、特にHPC向けに設計されたAPIを定義する。これは、高レベルの能力を扱うタグ付きメッセージングAPIを定義し、メッセージパッシングインターフェース(MPI)標準の実施を効率良くサポートすることができる。一方、PSMの内部の実装は、データ移動ストラテジに関するインターコネクト固有の詳細と、QoS(サービス品質)、分散ルーチン、回復力などの高度な特徴を調整することとに焦点をあてることができる。アクティブメッセージが、経験的な特徴としてさらに提供される。
PSMは、ユーザ空間ライブラリとして実装されるように設計される。PSMを使用してRMAデータ転送を実行するための詳細は、QLogic又はPSMの開発者によって公開されている複数バージョンのPSMプログラマ向けマニュアルにおいて、あるいはOpenFabricsアライアンスにより公開されている様々なPSM関連文書において提供される。PSMは、バージョン1.5.2としてOFED(OpenFabrics Enterprise Distribution)に含まれ、IB Verbに対するピアである。InfiniBandにおける使用をターゲットとしているが、本明細書におけるPSMを採用する実施形態下において、PSMのような機能性は、イーサネット(登録商標)ネットワークアダプタなどの非InfiniBandハードウェアについて実施されてもよい。
上記で言及されたとおり、PSMはメモリ登録を必要としない。場合により、ライトウェイトメモリ登録メカニズムが、アクセス検証を提供するように実施されてもよい。この実施検討には、連続的なアドレス空間、又はソートされたばらばらのアドレス範囲のリストなどの、アクセスされるべきメモリ領域制御構造を含んでもよい。一実施形態において、制御構造アドレスが、アクセスキーとして使用されてもよい。
図4は、ネットワークリンク404を介して接続されたローカルノード400とリモートノード402とによって実行されるオペレーション及びメッセージングタイムフローを例示する。直接接続として表されているが、ネットワークリンク404は、例えばスイッチなどの1又は複数のさらなるネットワーク要素を横断してもよいことが理解されるであろう。タイムフローは、ローカルノード400が、ローカルノード400のローカルメモリにおける1又は複数のアドレス空間内の1又は複数のアドレス範囲406を登録することから始まる。それから、ローカルノード400は、キー公開メッセージ410を介してアクセスキー408を公開し、キー公開メッセージ410は、リモートノード402などの1又は複数のリモートノードに送信される。一実施形態において、アクセスキー408は、ローカルノード400によって登録された(1又は複数の)登録アドレス範囲/空間を識別するようにエンコードされる。
その後、アクセスキー408は、ローカルノード400により登録された(1又は複数の)アドレス範囲/空間内のメモリにアクセスするリモートノード402によって発行されるRMA書き込み及びRMA読み出し要求の検証に使用される。図4の下部に表されるとおり、AM書き込み要求又はAM読み出し要求に対応するメッセージ412が、リモートノード402からローカルノード400に送信される。メッセージ412はアクセスキー408を含む。受信に応じて、AM書き込み又はAM読み出しが、アクセスキー408を使用してローカルノード400によって検証される。この検証オペレーションは、いつの(1又は複数の)登録アドレス範囲/空間であるのかを確かめるように、開始アドレスと明示的な又は検出された要求のサイズとによって指定されるアドレス範囲を検証してもよい。検証が成功した場合、登録されたメモリへのアクセスが許可され、そうでない場合、該アクセスは許可されない。一実施形態において、リモートノード402のAM書き込み又はAM読み出し要求が検証に落第した場合に、アクセスエラーメッセージ416がリモートノード402に返される。
図5は、本明細書に開示される実施形態の態様を実施することに使用され得る(ローカル)ノード500として実施されるように構成された例示的な装置のブロック概略図である(「ローカル」又は「リモート」ノードの文脈はノードの観点からであり、本明細書に開示されるオペレーション及び機能性は、RMA書き込み又は読み出しオペレーションの文脈においてローカルノード又はリモートノードのいずれかとして動作する単一ノードによって実施され得ることが認識されるべきである。)一実施形態において、ノード500は、サーバシャーシにインストールされるように構成されたサーバブレード又はサーバモジュールを含む。サーバブレード/モジュールはメインボード502を含み、メインボード502上に、プロセッサ504、メモリ506、記憶装置508及びネットワークインターフェース510を含む様々なコンポーネントが搭載される。メインボード502は、一般に、サーバシャーシから電力を受け取り、かつシャーシ内の他のコンポーネントと通信する1又は複数のコネクタを含むことになる。例えば、一般的なブレードサーバ又はモジュールアーキテクチャは、それぞれのサーバブレード又はモジュールの接合コネクタが設置された、複数のコネクタを含むバックプレーンを採用している。
プロセッサ504は、1又は複数のコアを含むCPU512を含む。CPU及び/又はコアはインターコネクト514に結合され、インターコネクト514は、プロセッサに実装される1又は複数のインターコネクトの例示である(かつ、簡潔さのために単一のインターフェースコネクトとして示されている)。インターコネクト514は、メモリインターフェース(I/F)516とPCIe(ペリフェラルコンポーネントインターコネクトエクスプレス)インターフェース518とにさらに結合される。メモリインターフェース516はメモリ506に結合され、PCIeインターフェース518は、記憶装置508及びネットワークインターフェース510を含む様々な入力/出力(I/O)装置にプロセッサ504を結合するインターフェースを提供する。一般に、記憶装置508は、これらに限定されないが磁気又は光ディスクドライブ、ソリッドステートドライブ(SSD)、フラッシュメモリチップ又はモジュールなどの1又は複数の不揮発性記憶装置の例示である。
ネットワークインターフェース510は、イーサネット(登録商標)ネットワークアダプタ又はNICなどの、サーバノードに実装され得る様々なタイプのネットワークインターフェースの例示である。ネットワークインターフェース510は、PCIeインターフェース520、ダイレクトメモリアクセス(DMA)エンジン522、送信バッファ524、受信バッファ526、MACモジュール530、及びパケット処理エンジン又はNPU(ネットワークプロセッサユニット)532を含む。ネットワークインターフェース510は、イーサネット(登録商標)物理レイヤを実施する回路及びロジックを含むPHY回路534をさらに含む。さらに、任意的な調整レイヤ536が表される。
PHY回路534は、一組のPHYサブレイヤ538a‐dと、シリアライザ/デシリアライザ(SERDES)540と、送信バッファ544及び1又は複数の送信器546を含む送信ポート542と、受信バッファ550及び1又は複数の受信器552を含む受信ポート548とを含む。ノード500はさらに、有線又は光リンク560を介して、受信ポート556及び送信ポート558を含むリモートノード554と通信するようにリンクされるものとして例示されている。実装される具体的なイーサネット(登録商標)PHYに依存して、種々の送信器及び受信器構成だけでなく、PHYサブレイヤの種々の組み合わせが採用されてもよい。例えば、10GE PHYは、40GE又は100GE PHYの異なるPHY回路を採用するであろう。
図1a、図1b、図2a、図2b、図3a及び図3bを参照して上記で説明された実施形態などの実施形態のソフトウェアベースの態様を実施するように、様々なソフトウェアコンポーネントがCPU512の1又は複数のコア上で実行される。図5に表される例示的なソフトウェアコンポーネントは、ホストオペレーティングシステム562と、アプリケーション564と、様々なAMハンドラ566及びRMAモジュール568を実施するソフトウェア命令とを含む。上記ソフトウェアコンポーネントのすべて又は一部分は、一般に、記憶装置508により表されるとおり、ノードのボード上に記憶されることになる。さらに、いくつかの実施形態下において、コンポーネントの1又は複数がネットワークを通じてダウンロードされ、メモリ506及び/又は記憶装置508にロードされてもよい。
ノード500のオペレーションの間、ホストオペレーティングシステム562の部分が、OSユーザ空間において実行される1又は複数のアプリケーション564と共に、メモリ506にロードされることになる。AMハンドラ566及びRMAモジュール558は、一般に、OSドライバなどを使用して実施されてもよく、あるいはOSユーザ空間において実行されるソフトウェアコンポーネントとして実施されてもよい。いくつかの実施形態において、AMハンドラ566及び/又はRMAモジュール558のすべて又は一部分が、ネットワークインターフェース510において実施されるパケット処理エンジン/NPU532などの1又は複数の処理要素上で実行される組み込みソフトウェアとして実施されてもよい。別の選択肢として、AMハンドラオペレーション及び/又はRMAモジュールオペレーションのすべて又は一部分が、ノード502上にホストされた1又は複数の仮想マシン(図示せず)を介して実施されてもよい。
図5に例示される実施形態において、MACモジュール530は、ネットワークインターフェース510の一部として表され、ハードウェアコンポーネントを含む。ネットワークインターフェース510によりサポートされる様々なオペレーションを実施するロジックが、パケット処理エンジン/NPU532又は1若しくは複数の他のプロセッサ要素上で実行される組み込みロジック及び/又は組みこみソフトウェアを介して実施されてもよい。一例として、送信ポート542からの転送アウトバウンドのための上位レイヤパケットを作成することに、組み込みロジックが用いられてもよい。これには、上位レイヤパケット(例えば、TCP/IP、UDP、他のプロトコルなど)のイーサネット(登録商標)パケットにおけるカプセル化と、その後のイーサネット(登録商標)パケットのフレーム化とを含み、イーサネット(登録商標)パケットは、イーサネット(登録商標)フレームのストリームを生成するために使用される。
一般に、パケット処理エンジン/NPU532により実行されるパケット処理オペレーションは、組み込みロジック及び/又は組み込みソフトウェアを介して実施されてもよい。パケット処理は、ネットワークインターフェース510内、及びさらにネットワークインターフェース510とメモリ506との間におけるデータの送付を管理するように実施される。これには、DMA書き込みを使用して受信バッファ526からメモリ506にデータを送付するように構成されたDMAエンジン522の使用を含み、CPU512を関与させない方法でデータがPCIeインターフェース520及び518を介してメモリ506に送付されることをもたらす。いくつかの実施形態において、送信バッファ524及び受信バッファ526は、ネットワーキング分野において周知の技法を使用して上記バッファとメモリ506とにおけるDMAデータ転送を容易にするように構成されたメモリマップドIO(MMIO)アドレス空間を含む。
ホストプロセッサ504上で実行されるソフトウェアに、MCAレイヤオペレーションのいずれもが実装されなくてもよく、MACレイヤオペレーションのすべて又は一部分が実装されてもよい。スプリットMACアーキテクチャを使用する一実施形態において、イーサネット(登録商標)パケットカプセル化及びカプセル化解除(decapsulation)オペレーションはソフトウェアにおいて実施され、イーサネット(登録商標)フレーム化及びフレーム化解除(deframing)はハードウェアにおいて(例えば、ネットワークインターフェース510のパケット処理エンジン/NPU532上で実行される組み込みロジック又は組み込みソフトウェアを介して)実施される。
AM要求とAM応答と関連するAMハンドラとを用いるRMA書き込み及びRMAスキームは、既存のRMA技法を超える利点を提供する。例えば、上記スキームはホスト上で実行されるソフトウェアを介して実施されてもよいため、特別に構成されたハードウェア(例えば、InfiniBand HCA)をこれまでに必要としたRMAデータ転送を、これに限定されないがイーサネット(登録商標)などの他のプロトコルで使用されるように拡張することができる。上記スキームは、機能性又はパフォーマンスをさらに向上させるようにPSM又はタグ付きメッセージングAPIの使用などの既存の技法と組み合わせられてもよい。
本明細書に説明される対象事項のさらなる態様が、下記の番号付けされた付記(clauses)において提示される。
付記1
リモートノードとローカルノードとにおけるリモートメモリアクセス(RMA)データ転送を実行する方法であって、
上記ローカルノードから上記リモートノードにデータが書き込まれるRMA書き込みを、
書き込まれるべきデータを上記ローカルノード上のソースバッファから読み出すステップと、
第1のアクティブメッセージ(AM)書き込み要求を上記ローカルノードから上記リモートノード上のAMハンドラに送信するステップであり、上記第1のAM書き込み要求は、書き込まれるべきデータと、該データが書き込まれるべき上記リモートノード上のリモートメモリアドレス空間における開始アドレスとを含む、ステップと、
上記第1のAM書き込み要求を、上記リモートノード上の上記AMハンドラで、上記第1のAM書き込み要求から上記データを抽出し、かつ上記開始アドレスで始まる上記リモートメモリアドレス空間におけるアドレス範囲に上記データを書き込むことによって扱うステップと、
によって実行するステップ
を含む方法。
付記2
上記リモートノードから上記ローカルノードにAM書き込み応答を送信するステップであって、上記AM書き込み応答は、上記データが上記リモートメモリアドレス空間に成功裏に書き込まれたことを示す、ステップと、
上記ローカルノード上のAMハンドラを用いて上記AM書き込み応答メッセージを処理するステップと、
をさらに含む付記1に記載の方法。
付記3
書き込まれるべき上記データを複数のパケットへと区分するステップと、
上記複数のパケットの各々について、
上記ローカルノード上の上記ソースバッファから、パケットに対応するパケットデータを読み出すステップと、
上記ローカルノードから上記リモートノード上の上記AMハンドラに、上記パケットデータと該パケットデータが書き込まれるべき上記リモートノード上のリモートメモリアドレス空間における開始アドレスとを含むそれぞれのAM要求を送信するステップと、
上記それぞれのAM要求を、上記リモートノード上の上記AMハンドラで、上記それぞれのAM要求から上記パケットデータを抽出し、かつ上記開始アドレスで始まる上記リモートメモリアドレス空間におけるアドレス範囲に上記データを書き込むことによって扱うステップと、
をさらに含み、
上記第1のAM書き込み要求は、上記複数のパケットのデータの第1のパケットを転送するために使用されるAM書き込み要求に対応する、
付記1又は2に記載の方法。
付記4
上記パケットデータのすべてが上記リモートメモリアドレス空間に成功裏に書き込まれたことを検出するステップと、
上記リモートノードから上記ローカルノードに、上記パケットデータが上記リモートメモリアドレス空間に成功裏に書き込まれたことを示すAM応答を送信するステップと、
上記ローカルノード上のAMハンドラを用いて上記AM応答メッセージを処理するステップと、
をさらに含む付記3に記載の方法。
付記5
データが上記リモートノードから読み出され、かつ上記ローカルノードに転送されるRMA読み出しを、
上記リモートノード上の上記AMハンドラにAM読み出し要求を送信するステップであって、上記AM読み出し要求は、読み出されるべきデータの上記リモートアドレス空間におけるアドレス範囲を識別する、ステップと、
上記AM読み出し要求メッセージを受信することに応答して、上記リモートノード上の上記AMハンドラを介して上記リモートアドレス空間から読み出されるべき上記データを取り出し、AM読み出し応答メッセージを介して上記ローカルノードに上記の取り出されたデータを送信するステップと、
上記AM読み出し応答を、上記ローカルノード上のAMハンドラで、上記AM読み出し応答から上記データを抽出し、かつ上記ローカルノード上の宛先バッファに上記データを書き込むことによって扱うステップと、
によって実行するステップ
をさらに含む先行する付記のうちいずれか1つに記載の方法。
付記6
データが上記リモートノードから読み出され、かつ複数のパケットを使用して上記ローカルノードに転送されるRMA読み出しを実行するステップであって、上記複数のパケットの各々についてのデータが、
それぞれのAM読み出し要求を上記リモートノード上の上記AMハンドラに送信するステップであり、上記AM読み出し要求は、読み出されるべきパケットデータの上記リモートアドレス空間におけるアドレス範囲を識別する、ステップと、
上記AM読み出し要求メッセージを受信することに応答して、上記リモートノード上の上記AMハンドラを介して上記リモートアドレス空間から読み出されるべき上記パケットデータを取り出し、AM読み出し応答メッセージを介して上記ローカルノードに上記の取り出されたパケットデータを送信するステップと、
上記AM読み出し応答を、上記ローカルノード上のAMハンドラで、上記AM読み出し応答から上記パケットデータを抽出し、かつ上記ローカルノード上の宛先バッファに上記パケットデータを書き込むことによって扱うステップと、
によって転送される、ステップ、
をさらに含む先行する付記のうちいずれか1つに記載の方法。
付記7
タグ付きメッセージングスキームを使用して上記第1のAM書き込み要求にタグ付きメッセージを用いるステップと、
上記リモートノード上の上記AMハンドラを用いて上記タグ付きメッセージを調べて、上記リモートノードが上記第1のAM書き込み要求の意図された受信者であることを照合するステップと、
をさらに含む先行する付記のうちいずれか1つに記載の方法。
付記8
上記ローカルノードにおいて、上記リモートノードから送信される1又は複数のAM書き込み要求を使用してデータが書き込まれ得る上記リモートノード上の上記リモートメモリアドレス空間における少なくとも1つのアドレス範囲を登録するステップ、をさらに含む先行する付記のうちいずれか1つに記載の方法。
付記9
上記リモートノードに、上記ローカルノードに登録された少なくとも1つのアドレス範囲に対応するアクセスキーを公開するステップと、
上記第1のAM書き込み要求に上記アクセスキーを含めるステップと、
上記リモートノード上の上記AMハンドラを介して上記アクセスキーを調べて、上記第1のAM書き込み要求が許可されるかを検証するステップと、
をさらに含む付記8に記載の方法。
付記10
先行する付記のうちいずれか1つに記載の方法を実施するためにローカル及びリモートのノード上でそれぞれ実行されるように構成された第1の命令セット及び第2の命令セットを記憶した非一時的マシン可読媒体。
付記11
リモートノードとローカルノードとにおけるリモートメモリアクセス(RMA)データ転送を実行する方法であって、
上記ローカルノードから上記リモートノードにデータが書き込まれるRMA書き込みを、
上記ローカルノードから上記リモートノード上のAMハンドラに第1のアクティブメッセージ(AM)書き込み要求を送信するステップであり、上記第1のAM書き込み要求は、上記データが書き込まれるべき上記リモートノード上のリモートメモリアドレス空間におけるアドレス範囲を識別する、ステップと、
書き込まれるべきデータを上記ローカルノード上のソースバッファから読み出し、上記データを上記リモートノードに送信するステップと、
上記リモートノードにより受信された上記データを、上記リモートメモリアドレス空間に書き込まれるべき上記データに上記第1のAM書き込み要求において識別される上記アドレス範囲を占有させるように処理するステップと、
によって実行するステップ
を含む方法。
付記12
複数のAM書き込み要求を受信するステップであって、各AM書き込み要求は、後に送信されるAM書き込み要求に関連付けられたデータのブロックが書き込まれるべき上記リモートノード上の上記リモートメモリアドレス空間におけるアドレス範囲を識別し、各AM書き込み要求は、関連付けられたデータの上記ブロックを識別するしるし(indicia)を含む、ステップと、
上記リモートノード上の上記AMハンドラを介して、上記リモートノード上のRMA書き込みキューに各AM書き込み要求をエンキューするステップと、
上記ローカルノードからデータの複数のブロックを受信するステップであって、データの各ブロックは、事前に受信されたAM書き込み要求に関連付けられ、上記事前に受信されたAM書き込み要求を識別することがしるしを含む、ステップと、
上記RMA書き込みキューから上記AM書き込み要求をデキューするステップと、
各々のデキューされたAM書き込み要求を、AM書き込み要求に関連付けられた上記の受信されたデータのブロックが上記リモートメモリアドレス空間においてどこに書き込まれるべきかを決定するように処理するステップと、
をさらに含む付記11に記載の方法。
付記13
データが上記リモートノードから読み出され、かつ上記ローカルノードに転送されるRMA読み出しを、
上記リモートノード上の上記AMハンドラにAM読み出し要求を送信するステップであって、上記AM読み出し要求は、読み出されるべきデータの上記リモートアドレス空間におけるアドレス範囲を識別する、ステップと、
上記AM読み出し要求メッセージを受信することに応答して、上記リモートノード上の上記AMハンドラを介して、読み出されるべきデータの上記リモートアドレス空間における上記アドレス範囲を識別する上記AM読み出し要求に対応するRMA読み出し要求を生成するステップと、
上記リモートノード上で上記RMA読み出し要求を処理するステップであって、上記RMA読み出し要求における上記アドレス範囲により定義されるとおりの上記リモートアドレス空間から読み出されるべき上記データが、上記リモートアドレス空間から取り出され、かつ上記ローカルノードに送信されることをもたらす、ステップと、
上記リモートノードから送信される上記の取り出されたデータを、上記ローカルノード上の宛先バッファに書き込むステップと、
によって実行するステップ、をさらに含む付記11又は12に記載の方法。
付記14
上記AM読み出し要求メッセージを受信することに応答して、上記リモートノード上の上記AMハンドラを介して、読み出されるべきデータの上記リモートアドレス空間における上記アドレス範囲を識別する上記AM読み出し要求に対応するRMA読み出し要求を生成し、上記リモートノード上のRMA読み出し要求キューにエンキューするステップと、
上記RMA読み出し要求キューから上記RMA読み出し要求をデキューするステップと、
上記RMA読み出し要求における上記アドレス範囲により定義されるとおりの上記リモートアドレス空間から読み出されるべき上記データを取り出し、上記の取り出されたデータを上記ローカルノードに送信するステップと、
をさらに含む付記13に記載の方法。
付記15
上記のデキューし、データ取り出しし、送信するオペレーションは、上記リモートノード上の上記AMハンドラとは別個である上記リモートノード上のRMA読み出し機能によって実行される、付記14に記載の方法。
付記16
上記ローカルノードにおいて、上記リモートノードから送信される1又は複数のAM書き込み要求を使用してデータが書き込まれ得る上記リモートノード上の上記リモートメモリアドレス空間における少なくとも1つのアドレス範囲を登録するステップ、をさらに含む付記11乃至15のうちいずれか1つに記載の方法。
付記17
上記リモートノードに、上記ローカルノードに登録された少なくとも1つのアドレス範囲に対応するアクセスキーを公開するステップと、
上記第1のAM書き込み要求に上記アクセスキーを含めるステップと、
上記リモートノード上の上記AMハンドラを介して上記アクセスキーを調べて、上記第1のAM書き込み要求が許可されるかを検証するステップと、
をさらに含む付記17に記載の方法。
付記18
付記11乃至17のうちいずれか1つに記載の方法を実施するためにローカル及びリモートのノード上でそれぞれ実行されるように構成された第1の命令セット及び第2の命令セットを記憶した非一時的マシン可読媒体。
付記19
ネットワークインターフェースと、
ローカルメモリアドレス空間を含むメモリと、
上記ネットワークインターフェースを介して、上記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される第1のAM書き込み要求を受信することであって、上記第1のAM書き込み要求は、上記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、第1のデータが書き込まれるべき上記メモリにおける上記ローカルメモリアドレス空間における開始アドレスに書き込まれるべき上記データを含み、
上記第1のAM書き込み要求を、上記第1のAM書き込み要求から上記データを抽出し、かつ上記開始アドレスで始まる上記リモートメモリアドレス空間におけるアドレス範囲に上記データを書き込むことによって扱い、
上記リモート装置に、上記データが上記リモートメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信する
ように構成された書き込み要求アクティブメッセージ(AM)ハンドラと、
を備えた装置。
付記20
上記リモート装置上のメモリにおけるリモートメモリアドレス空間に対するRMA書き込みに対応する第2のAM書き込み要求が生成され、かつ上記リモート装置に送信されるAM書き込みオペレーションを実行するように構成されたRMA書き込みモジュールであって、上記第2のAM書き込み要求は、第2のデータが書き込まれるべき上記リモートメモリアドレス空間における開始アドレスに書き込まれるべき上記データを含む、RMA書き込みモジュールと、
上記第2のデータを上記リモートメモリアドレス空間に成功裏に書き込むことに応じて上記リモート装置から送信されるAM書き込み応答を処理するように構成された書き込み応答AMハンドラと、
をさらに備えた付記19に記載の装置。
付記21
ソースバッファ、をさらに備え、上記RMA書き込みモジュールは、
上記リモートメモリアドレス空間に書き込まれるべき第3のデータを複数のパケットへと区分し、
上記複数のパケットの各々について、
パケットに対応するパケットデータを上記ソースバッファから読み出し、
上記リモート装置上の書き込み要求AMハンドラに、上記パケットデータと該パケットデータが書き込まれるべき上記リモート装置上の上記リモートメモリアドレス空間におけるそれぞれの開始アドレスとを含むそれぞれのAM書き込み要求を送信する
ようにさらに構成される、付記20に記載の装置。
付記22
上記書き込み要求AMハンドラは、
上記リモート装置から複数のAM書き込み要求を受信することであって、上記複数のAM書き込み要求の各々は、複数のパケットへと区分され、かつ上記ローカルメモリアドレス空間におけるそれぞれの開始アドレスにおいて上記ローカルメモリアドレス空間に書き込まれるべき第3のデータの、リモート書き込みに対応するそれぞれのパケットデータを含み、
上記複数のAM書き込み要求の各々についての上記パケットデータを抽出し、AM書き込み要求により識別される上記開始アドレスで始まる上記ローカルメモリアドレス空間に上記パケットデータを書き込み、
上記第3のデータの全体が上記ローカルメモリアドレス空間に書き込まれたことを検出し、
上記リモート装置に、上記第3のデータが上記ローカルメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信する
ようにさらに構成される、付記19乃至21のうちいずれか1つに記載の装置。
付記23
上記ローカルメモリにおける宛先バッファと、
読み出し応答AMハンドラと、
AM読み出し要求を生成し、上記リモート装置上の読み出し要求AMハンドラに送信することであって、上記AM読み出し要求は、読み出されるべき上記リモート装置のデータの上記リモートアドレス空間におけるアドレス範囲を識別し、
上記AM読み出し要求に応答して、上記リモート装置から、上記リモートアドレス空間から読み出された上記データを含むAM読み出し応答を受信し、
上記AM読み出し応答を、上記読み出し応答AMハンドラで、上記AM読み出し応答から上記データを抽出し、かつ上記データを上記宛先バッファに書き込むことによって扱う
ように構成されたRMA読み出しモジュールと、
をさらに備えた付記19乃至22のうちいずれか1つに記載の装置。
付記24
上記RMA読み出しモジュールは、データが上記リモート装置から読み出され、かつ複数のパケットを使用して転送されるRMA読み出しを実行するようにさらに構成され、上記複数のパケットの各々についてのデータは、
それぞれのAM読み出し要求を上記リモート装置上の上記AM読み出し要求ハンドラに送信することであって、上記AM読み出し要求は、読み出されるべきパケットデータの上記リモートアドレス空間におけるアドレス範囲を識別し、
各々のそれぞれのAM読み出し要求に応答して、上記リモート装置から、上記リモートアドレス空間から読み出された上記パケットデータを含むAM読み出し応答を受信し、
上記AM読み出し応答を、上記読み出し応答AMハンドラで、上記AM読み出し応答から上記パケットデータを抽出し、かつ上記パケットデータを上記宛先バッファに書き込むことによって扱う
ことによって遠隔的に(remotely)読み出される、付記19乃至23のうちいずれか1つに記載の装置。
付記25
上記リモート装置から、読み出されるべきデータを含むデータの上記ローカルアドレス空間におけるアドレス範囲を識別するAM読み出し要求を受信し、
上記AM読み出し要求において識別される上記アドレス範囲から上記データを取り出し、
上記リモート装置に、取り出された上記データを含むAM応答を送信する
ように構成された読み出し要求AMハンドラ
をさらに含む付記19乃至24のうちいずれか1つに記載の装置。
付記26
ネットワークインターフェースと、
ローカルメモリアドレス空間を含むメモリと、
上記ネットワークインターフェースを介して、上記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される複数のAM書き込み要求を受信することであって、各AM書き込み要求は、上記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、上記ローカルメモリアドレス空間に書き込まれるべきそれぞれのデータと該それぞれのデータの先頭が書き込まれるべき開始アドレスとを含み、
RMA書き込み要求を生成し、上記RMA書き込み要求をRMA書き込みキューにエンキューする
ように構成された書き込み要求アクティブメッセージ(AM)ハンドラと、
上記リモート装置からデータの複数のブロックを受信することであって、データの各ブロックは、事前に受信されたAM書き込み要求に関連付けられ、対応するRMA書き込み要求を識別することができるしるしを含み、
上記RMA書き込みキューから上記RMA書き込み要求をデキューし、
各々のデキューされたRMA書き込み要求を、RMA書き込み要求に関連付けられた上記の受信されたデータのブロックが上記ローカルメモリアドレス空間においてどこに書き込まれるべきかを決定するように処理する
ように構成されたRMA進行モジュールと、
を備えた装置。
付記27
上記メモリにおけるソースバッファと、
上記リモート装置にAM書き込み要求を送信することであって、上記AM書き込み要求は、上記データが書き込まれるべき上記リモート装置上のメモリにおけるリモートメモリアドレス空間におけるアドレス範囲を識別し、
書き込まれるべき上記データを上記ソースバッファから読み出し、
上記データを上記リモート装置に送信することであって、上記データは、上記AM書き込み要求を送信した後に送信され、上記データは、送信される上記データを上記AM書き込み要求とマッチさせるのに使用されるように構成されたしるしと共に送信される
ように構成されたRMA書き込みモジュールと、
をさらに備えた付記26に記載の装置。
付記28
RMA読み出し要求キューと、
上記リモート装置から、読み出されるべきデータの上記ローカルアドレス空間におけるアドレス範囲を識別するAM読み出し要求を受信し、
上記AM読み出し要求メッセージを受信することに応答して、読み出されるべきデータの上記ローカルアドレス空間における上記アドレス範囲を識別する対応するRMA読み出し要求を生成し、
上記RMA読み出し要求キューに上記RMA読み出し要求をエンキューする
ように構成された読み出し要求AMハンドラと、
上記RMA読み出し要求キューから上記RMA読み出し要求をデキューし、
上記RMA読み出し要求における上記アドレス範囲により定義されるとおりの上記ローカルアドレス空間からデータを読み出し、
読み出された上記データを上記リモート装置に送信する
ように構成されたRMA進行モジュールと、
をさらに備えた付記26又は27に記載の装置。
付記29
上記メモリの一部分を占有する宛先バッファと、
上記リモート装置にAM読み出し要求を送信することであって、上記AM読み出し要求は、読み出されるべき上記リモート装置上のメモリにおけるリモートアドレス空間におけるアドレス範囲を識別し、
上記リモート装置から、上記リモートアドレス空間から読み出されたデータを受信し、
上記の受信されたデータを上記宛先バッファに書き込む
ように構成されたRMA読み出しモジュールと、
をさらに備えた付記28に記載の装置。
付記30
ネットワークインターフェースとローカルアドレス空間を含むメモリとを含むノード上で実行されるように構成された命令を記憶した非一時的マシン可読媒体であって、上記命令は、
実行されると、
上記ネットワークインターフェースを介して、上記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される第1のAM書き込み要求を受信することであって、上記第1のAM書き込み要求は、上記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、かつ第1のデータが書き込まれるべき上記メモリにおける上記ローカルメモリアドレス空間における開始アドレスに書き込まれるべき上記データを含み、
上記第1のAM書き込み要求を、上記第1のAM書き込み要求から上記データを抽出し、かつ上記開始アドレスで始まる上記リモートメモリアドレス空間におけるアドレス範囲に上記データを書き込むことによって扱い、
上記リモート装置に、上記データが上記リモートメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信する
ように構成された書き込み要求アクティブメッセージ(AM)ハンドラ
を含む、非一時的マシン可読媒体。
付記31
上記リモート装置上のメモリにおけるリモートメモリアドレス空間に対するRMA書き込みに対応する第2のAM書き込み要求が生成され、かつ上記リモート装置に送信されるAM書き込みオペレーションを実行するように構成されたRMA書き込みモジュールであって、上記第2のAM書き込み要求は、第2のデータが書き込まれるべき上記リモートメモリアドレス空間における開始アドレスに書き込まれるべき上記データを含む、RMA書き込みモジュールと、
上記第2のデータを上記リモートメモリアドレス空間に成功裏に書き込むことに応じて上記リモート装置から送信されるAM書き込み応答を処理するように構成された書き込み応答AMハンドラと、
を含む命令をさらに含む、付記30に記載の非一時的マシン可読媒体。
付記32
上記ノードはソースバッファをさらに備え、上記RMA書き込みモジュールは、
上記リモートメモリアドレス空間に書き込まれるべき第3のデータを複数のパケットへと区分し、
上記複数のパケットの各々について、
上記ソースバッファから、パケットに対応するパケットデータを読み出し、
上記リモート装置上の書き込み要求AMハンドラに、上記パケットデータと該パケットデータが書き込まれるべき上記リモート装置上の上記リモートメモリアドレス空間におけるそれぞれの開始アドレスとを含むそれぞれのAM書き込み要求を送信する
ようにさらに構成される、付記31に記載の非一時的マシン可読媒体。
付記33
上記書き込み要求AMハンドラは、
上記リモート装置から複数のAM書き込み要求を受信することであって、上記複数のAM書き込み要求の各々は、複数のパケットへと区分され、かつ上記ローカルメモリアドレス空間におけるそれぞれの開始アドレスにおいて上記ローカルメモリアドレス空間に書き込まれるべき第3のデータの、リモート書き込みに対応するそれぞれのパケットデータを含み、
上記複数のAM書き込み要求の各々について、パケットデータを抽出し、AM書き込み要求により識別される開始アドレスで始まる上記ローカルメモリアドレス空間に上記パケットデータを書き込み、
上記第3のデータの全体が上記ローカルメモリアドレス空間に書き込まれたことを検出し、
上記リモート装置に、上記第3のデータが上記ローカルメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信する
ようにさらに構成される、付記30乃至32のうちいずれか1つに記載の非一時的マシン可読媒体。
付記34
上記ノードは上記ローカルメモリにおける宛先バッファをさらに備え、上記命令は、
読み出し応答AMハンドラと、
実行されると、
AM読み出し要求を生成し、上記リモート装置上の読み出し要求AMハンドラに送信することであって、上記AM読み出し要求は、読み出されるべき上記リモート装置のデータの上記リモートアドレス空間におけるアドレス範囲を識別し、
上記AM読み出し要求に応答して、上記リモート装置から、上記リモートアドレス空間から読み出された上記データを含むAM読み出し応答を受信し、
上記AM読み出し応答を、上記読み出し応答AMハンドラで、上記AM読み出し応答から上記データを抽出し、かつ上記データを上記宛先バッファに書き込むことによって扱う
ように構成されたRMA読み出しモジュールと、
をさらに含む、付記30乃至33のうちいずれか1つに記載の非一時的マシン可読媒体。
付記35
上記RMA読み出しモジュールは、データが上記リモート装置から読み出され、かつ複数のパケットを使用して転送されるRMA読み出しを実行するようにさらに構成され、上記複数のパケットの各々についてのデータは、
それぞれのAM読み出し要求を上記リモート装置上の上記AM読み出し要求ハンドラに送信することであって、上記AM読み出し要求は、読み出されるべきパケットデータの上記リモートアドレス空間におけるアドレス範囲を識別し、
各々のそれぞれのAM読み出し要求に応答して、上記リモート装置から、上記リモートアドレス空間から読み出された上記パケットデータを含むAM読み出し応答を受信し、
上記AM読み出し応答を、上記読み出し応答AMハンドラで、上記AM読み出し応答から上記パケットデータを抽出し、かつ上記パケットデータを上記宛先バッファに書き込むことによって扱う
ことによって遠隔的に読み出される、付記30乃至34のうちいずれか1つに記載の非一時的マシン可読媒体。
付記36
上記命令は、
上記リモート装置から、読み出されるべきデータを含むデータの上記ローカルアドレス空間におけるアドレス範囲を識別するAM読み出し要求を受信し、
上記AM読み出し要求において識別される上記アドレス範囲から上記データを取り出し、
上記リモート装置に、取り出された上記データを含むAM応答を送信する
ように構成された読み出し要求AMハンドラ
をさらに含む、付記30乃至35のうちいずれか1つに記載の非一時的マシン可読媒体。
付記37
ネットワークインターフェースとローカルアドレス空間を含むメモリとを含むノード上で実行されるように構成された命令を記憶した非一時的マシン可読媒体であって、上記命令は、
実行されると、
上記ネットワークインターフェースを介して、上記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される複数のAM書き込み要求を受信することであって、各AM書き込み要求は、上記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、かつ上記ローカルメモリアドレス空間に書き込まれるべきそれぞれのデータと該それぞれのデータの先頭が書き込まれるべき開始アドレスとを含み、
RMA書き込み要求を生成し、上記RMA書き込み要求をRMA書き込みキューにエンキューする
ように構成された書き込み要求アクティブメッセージ(AM)ハンドラと、
実行されると、
上記リモート装置からデータの複数のブロックを受信することであって、データの各ブロックは、事前に受信されたAM書き込み要求に関連付けられ、かつ対応するRMA書き込み要求を識別することができるしるしを含み、
上記RMA書き込みキューから上記RMA書き込み要求をデキューし、
各々のデキューされたRMA書き込み要求を、RMA書き込み要求に関連付けられた上記の受信されたデータのブロックが上記ローカルメモリアドレス空間においてどこに書き込まれるべきかを決定するように処理する
ように構成されたRMA進行モジュールと、
を含む、非一時的マシン可読媒体。
付記38
上記ノードは上記メモリにおけるソースバッファをさらに備え、上記命令は、
実行されると、
上記リモート装置にAM書き込み要求を送信することであって、上記AM書き込み要求は、上記データが書き込まれるべき上記リモート装置上のメモリにおけるリモートメモリアドレス空間におけるアドレス範囲を識別し、
書き込まれるべき上記データを上記ソースバッファから読み出し、
上記データを上記リモート装置に送信することであって、上記データは、上記AM書き込み要求を送信した後に送信され、上記データは、送信される上記データを上記AM書き込み要求とマッチさせるのに使用されるように構成されたしるしと共に送信される
ように構成されたRMA書き込みモジュール
をさらに含む、付記37に記載の非一時的マシン可読媒体。
付記39
上記ノードはRMA読み出し要求キューをさらに備え、上記命令は、
実行されると、
上記リモート装置から、読み出されるべきデータの上記ローカルアドレス空間におけるアドレス範囲を識別するAM読み出し要求を受信し、
上記AM読み出し要求メッセージを受信することに応答して、読み出されるべきデータの上記ローカルアドレス空間における上記アドレス範囲を識別する対応するRMA読み出し要求を生成し、
上記RMA読み出し要求キューに上記RMA読み出し要求をエンキューする
ように構成された読み出し要求AMハンドラと、
上記RMA読み出し要求キューから上記RMA読み出し要求をデキューし、
上記RMA読み出し要求における上記アドレス範囲により定義されるとおりの上記ローカルアドレス空間からデータを読み出し、
読み出された上記データを上記リモート装置に送信する
ように構成されたRMA進行モジュールと、
をさらに含む、付記37又は38に記載の非一時的マシン可読媒体。
付記40
上記ノードは上記メモリの一部分を占有する宛先バッファをさらに備え、上記命令は、
実行されると、
上記リモート装置にAM読み出し要求を送信することであって、上記AM読み出し要求は、読み出されるべき上記リモート装置上のメモリにおけるリモートアドレス空間におけるアドレス範囲を識別し、
上記リモート装置から、上記リモートアドレス空間から読み出されたデータを受信し、
上記の受信されたデータを上記宛先バッファに書き込む
ように構成されたRMA読み出しモジュール
をさらに含む、付記39に記載の非一時的マシン可読媒体。
具体的な実装を参照していくつかの実施形態が説明されたが、他の実装がいくつかの実施形態に従って可能である。さらに、図面に例示され及び/又は本明細書に説明された要素又は他の特徴の配置及び/又は順序は、例示され説明された上記具体的な方法において配置される必要はない。多くの他の配置がいくつかの実施形態に従って可能である。
図に示された各システムにおいて、いくつかの場合における要素が同じ参照番号又は異なる参照番号を各々有して、表現された要素が異なり得る及び/又は同様であり得ることを示唆することがある。しかしながら、要素は、種々の実装を有し、かつ本明細書に示され又は説明されたシステムのいくつか又はすべてと共に動作するほど十分に、柔軟であり得る。図面に示された様々な要素は、同じであってもよく、あるいは異なってもよい。どの要素が第1の要素として参照され、どれが第2の要素と呼ばれるかは、任意的である。
本説明及び請求項において、用語「結合される」及び「接続される」とその派生物とが使用されることがある。上記用語は、互いに対するシノニムであるようには意図されないことが理解されるべきである。むしろ、特定の実施形態において、「接続される」は、2以上の要素が互いに直接の物理的又は電気的接触を有することを示すために使用されることがある。「結合される」は、2以上の要素が直接の物理的又は電気的接触を有することを意味することがある。しかしながら、「結合される」は、2以上の要素が互いに直接の接触を有さないがしかしなお互いに協働し又は相互作用することを意味することもある。
本明細書において、及び一般に、アルゴリズムは、所望される結果につながる動作又はオペレーションについての自己矛盾のないシーケンスであると考えられる。上記動作又はオペレーションには、物理量の物理的操作を含む。必ずではないが、大抵、上記量は、記憶され、転送され、結合され、比較され、さらにその他の方法で操作されることが可能な電気的又は磁気的信号の形態をとる。上記信号をビット、値、要素、シンボル、文字、用語、数などで参照することは、主に共通使用の理由で、時に便利であることが分かっている。しかしながら、上記の及び同様の用語のすべてが適切な物理量に関連付けられるべきであり、かつ上記量に適用される単に便利なラベルであることが理解されるべきである。
一実施形態は、本発明の一実装又は一例である。本明細書における「一実施形態」、「ある実施形態」、「いくつかの実施形態」又は「他の実施形態」といった言葉は、その実施形態と関連して説明された特定の特徴、構造又は特性が本発明の少なくともいくつかの実施形態に含まれ、しかし必ずしもすべての実施形態には含まれないことを意味する。「一実施形態」、「ある実施形態」又は「いくつかの実施形態」の様々な出現は、必ずしもすべて同じ実施形態を参照するものではない。
本明細書に説明され例示されたすべてのコンポーネント、特徴、構造、特性等が特定の1又は複数の実施形態に含まれる必要はない。例えば、あるコンポーネント、特徴、構造又は特性が含まれ「てよい」、含まれ「る可能性がある」、含まれ「ることができる」、あるいは含まれ「るであろう」と本明細書が示す場合、上記特定のコンポーネント、特徴、構造又は特性が含まれることを必要とはされない。本明細書又は請求項が「一」要素を参照する場合、このことは、上記要素が1つだけ存在することを意味するものではない。本明細書又は請求項が「さらなる一」要素を参照する場合、このことは、2以上のさらなる要素が存在することを除外するものではない。
上記で論じられたとおり、本明細書における実施形態の様々な態様が、対応するソフトウェア並びに/又は組み込みコンポーネント及びアプリケーション、例えば、サーバ若しくはデバイスプロセッサ上で実行されるソフトウェア、並びに/又は組み込みプロセッサによって実行されるソフトウェア及び/若しくはファームウェアなどによって容易にされ得る。ゆえに、本発明の実施形態は、何らかの形態の処理コア(コンピュータのCPU、マルチコアプロセッサの1又は複数のコアなど)上で実行されるソフトウェアプログラム、ソフトウェアモジュール、ファームウェア及び/若しくは分散ソフトウェア、又はプロセッサ若しくはコア上で実行される仮想マシンとして使用され、あるいはこれらをサポートするように使用されてもよく、あるいはその他の方法で、コンピュータ可読又はマシン可読非一時的記憶媒体上に又は該媒体内で実施され、あるいは実現されてもよい。コンピュータ可読又はマシン可読非一時的記憶媒体は、マシン(例えばコンピュータ)によって読取可能な形式において情報を記憶し又は送信する任意のメカニズムを含む。例えば、コンピュータ可読又はマシン可読非一時的記憶媒体は、記録可能/記録不可能媒体(例えば、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置など)などの、コンピュータ又はコンピューティングマシン(例えば、コンピューティングデバイス、電子システムなど)がアクセス可能な形式において情報を提供する(すなわち、記憶し、かつ/あるいは送信する)任意のメカニズムを含む。そのコンテンツは、直接実行ファイル(「オブジェクト」又は「実行可能」形式)、ソースコード、又は差分コード(「デルタ」又は「パッチ」コード)であってよい。コンピュータ可読又はマシン可読非一時的記憶媒体には記憶装置又はデータベースを含んでもよく、上記記憶装置又はデータベースからコンテンツがダウンロードされてもよい。コンピュータ可読又はマシン可読非一時的記憶媒体には、販売又は発送の時点においてコンテンツを記憶させた装置又はプロダクトを含んでもよい。ゆえに、記憶されたコンテンツを有する装置を発送すること、又は通信媒体を通じたダウンロード向けにコンテンツを提示することが、本明細書に説明された上記コンテンツを有するコンピュータ可読又はマシン可読非一時的記憶媒体を含む製造品を提供することとして理解されてもよい。
本明細書に説明されたプロセス、サーバ又はツールとして上記で言及された様々なコンポーネントが、説明された機能を実行する手段であり得る。本明細書において説明された様々なコンポーネントによって実行されるオペレーション及び機能は、処理要素上で実行されるソフトウェアによって、あるいは組み込みハードウェアなどを介して、あるいはハードウェアとソフトウェアとの任意の組み合わせで実施されてもよい。上記コンポーネントは、ソフトウェアモジュール、ハードウェアモジュール、専用目的ハードウェア(例えば、アプリケーション固有ハードウェア、ASIC、DSPなど)、組み込みコントローラ、ハードワイヤード回路、ハードウェアロジックなどとして実施されてもよい。ソフトウェアコンテンツ(例えば、データ、命令、構成情報など)は、コンピュータ可読又はマシン可読非一時的記憶媒体を含む製造品を介して提供されてもよく、これは、実行することができる命令を表すコンテンツを提供する。コンテンツは、コンピュータに、本明細書に説明された様々な機能/オペレーションを実行させることができる。
本明細書において使用されるとき、用語「のうち少なくとも1つ」で結び付けられたアイテムの列挙は、列挙された用語の任意の組み合わせを意味し得る。例えば、表現「A、B又はCのうち少なくとも1つ」は、A、B、C、A及びB、A及びC、B及びC又はA、B及びCを意味し得る。
本発明の例示された実施形態の上記説明は、要約書に説明される内容も含め、網羅的なものではなく、開示されたそのままの形態に本発明を限定するものでもない。本発明の特定の実施形態と本発明のための例とが本明細書において例示目的で説明されているが、当業者が認識するであろうとおり、本発明の範囲内で様々な均等的変更が可能である。
こうした変更は、本発明に対して上記の詳細な説明を考慮して行われ得る。下記の請求項において使用される用語は、本明細書及び図面に開示された特定の実施形態に本発明を限定するものとみなされるべきではない。むしろ、本発明の範囲は全体として下記の請求項によって決定されるべきであり、請求項は請求項解釈についての確立された原則に従って解釈されるべきである。
100、200、300 ローカルノード
102、202、302 リモートノード
104、206、306 ソースバッファ
106、210、308 RMA書き込みモジュール
108、212 AM書き込み応答ハンドラ
110、214、310 AM書き込み要求ハンドラ
112、216、314 RMAアドレス空間
114、204、304 インターコネクト
116 ソースデータ
118、222、316 AM書き込み要求
122、226 AM書き込み応答
124、228、330 宛先バッファ
126、232、332 RMA読み出しモジュール
128、234 AM読み出し応答ハンドラ
130、236、336 AM読み出し要求ハンドラ
132、240、334 AM読み出し要求
134 リモートデータ
136、242 AM読み出し応答
208、218、230 スロット
220、241 パケット
312 RMA進行モジュール
324 RMA書き込み要求キュー
338 RMA読み出し要求キュー
400 ローカルノード
402 リモートノード
404 ネットワークリンク
406 アドレス範囲/空間
408 アクセスキー
410 キー公開メッセージ
412 AM書き込み又は読み出し要求メッセージ
416 アクセスエラーメッセージ
500 (ローカル)ノード
502 メインボード
504 プロセッサ
506 メモリ
516 メモリインターフェース
508 記憶装置
510 ネットワークインターフェース
518、520 PCIeインターフェース
522 DMAエンジン
566 AMハンドラ
558 RMAモジュール
554 リモートノード

Claims (25)

  1. リモートノードとローカルノードとにおけるリモートメモリアクセス(RMA)データ転送を実行する方法であって、
    前記ローカルノードから前記リモートノードにデータが書き込まれるRMA書き込みを、
    書き込まれるべきデータを前記ローカルノード上のソースバッファから読み出すステップと、
    第1のアクティブメッセージ(AM)書き込み要求を前記ローカルノードから前記リモートノード上のAMハンドラに送信するステップであり、前記第1のAM書き込み要求は、書き込まれるべきデータと、該データが書き込まれるべき前記リモートノード上のリモートメモリアドレス空間における開始アドレスとを含む、ステップと、
    前記第1のAM書き込み要求を、前記リモートノード上の前記AMハンドラで、前記第1のAM書き込み要求から前記データを抽出し、かつ前記開始アドレスで始まる前記リモートメモリアドレス空間におけるアドレス範囲に前記データを書き込むことによって扱うステップと、
    によって実行するステップ
    を含み、
    タグ付きメッセージングスキームを使用して前記第1のAM書き込み要求にタグ付きメッセージを用いるステップと、
    前記リモートノード上の前記AMハンドラを用いて前記タグ付きメッセージを調べて、前記リモートノードが前記第1のAM書き込み要求の意図された受信者であることを照合するステップと、
    をさらに含む方法。
  2. 前記リモートノードから前記ローカルノードにAM書き込み応答を送信するステップであって、前記AM書き込み応答は、前記データが前記リモートメモリアドレス空間に成功裏に書き込まれたことを示す、ステップと、
    前記ローカルノード上のAMハンドラを用いて前記AM書き込み応答のメッセージを処理するステップと、
    をさらに含む請求項1に記載の方法。
  3. 書き込まれるべき前記データを複数のパケットへと区分するステップと、
    前記複数のパケットの各々について、
    前記ローカルノード上の前記ソースバッファから、パケットに対応するパケットデータを読み出すステップと、
    前記ローカルノードから前記リモートノード上の前記AMハンドラに、前記パケットデータと該パケットデータが書き込まれるべき前記リモートノード上のリモートメモリアドレス空間における開始アドレスとを含むそれぞれのAM要求を送信するステップと、
    前記それぞれのAM要求を、前記リモートノード上の前記AMハンドラで、前記それぞれのAM要求から前記パケットデータを抽出し、かつ前記開始アドレスで始まる前記リモートメモリアドレス空間におけるアドレス範囲に前記パケットデータを書き込むことによって扱うステップと、
    をさらに含み、
    前記第1のAM書き込み要求は、前記複数のパケットのデータの第1のパケットを転送するために使用されるAM書き込み要求に対応する、
    請求項1又は2に記載の方法。
  4. 前記パケットデータのすべてが前記リモートメモリアドレス空間に成功裏に書き込まれたことを検出するステップと、
    前記リモートノードから前記ローカルノードに、前記パケットデータが前記リモートメモリアドレス空間に成功裏に書き込まれたことを示すAM応答を送信するステップと、
    前記ローカルノード上のAMハンドラを用いて前記AM応答のメッセージを処理するステップと、
    をさらに含む請求項3に記載の方法。
  5. データが前記リモートノードから読み出され、かつ前記ローカルノードに転送されるRMA読み出しを、
    前記リモートノード上の前記AMハンドラにAM読み出し要求を送信するステップであって、前記AM読み出し要求は、読み出されるべきデータの前記リモートメモリアドレス空間におけるアドレス範囲を識別する、ステップと、
    前記AM読み出し要求のメッセージを受信することに応答して、前記リモートノード上の前記AMハンドラを介して前記リモートメモリアドレス空間から読み出されるべき前記データを取り出し、AM読み出し応答のメッセージを介して前記ローカルノードに前記の取り出されたデータを送信するステップと、
    前記AM読み出し応答を、前記ローカルノード上のAMハンドラで、前記AM読み出し応答から前記データを抽出し、かつ前記ローカルノード上の宛先バッファに前記データを書き込むことによって扱うステップと、
    によって実行するステップ
    をさらに含む請求項1乃至4のうちいずれか1項に記載の方法。
  6. データが前記リモートノードから読み出され、かつ複数のパケットを使用して前記ローカルノードに転送されるRMA読み出しを実行するステップであって、前記複数のパケットの各々についてのデータが、
    それぞれのAM読み出し要求を前記リモートノード上の前記AMハンドラに送信するステップであり、前記AM読み出し要求は、読み出されるべきパケットデータの前記リモートメモリアドレス空間におけるアドレス範囲を識別する、ステップと、
    前記AM読み出し要求のメッセージを受信することに応答して、前記リモートノード上の前記AMハンドラを介して前記リモートメモリアドレス空間から読み出されるべき前記パケットデータを取り出し、AM読み出し応答のメッセージを介して前記ローカルノードに前記の取り出されたパケットデータを送信するステップと、
    前記AM読み出し応答を、前記ローカルノード上のAMハンドラで、前記AM読み出し応答から前記パケットデータを抽出し、かつ前記ローカルノード上の宛先バッファに前記パケットデータを書き込むことによって扱うステップと、
    によって転送される、ステップ
    をさらに含む請求項1乃至5うちいずれか1項に記載の方法。
  7. 前記ローカルノードにおいて、前記リモートノードから送信される1以上のAM書き込み要求を使用してデータが書き込まれ得る前記リモートノード上の前記リモートメモリアドレス空間における少なくとも1つのアドレス範囲を登録するステップと、
    前記リモートノードに、前記ローカルノードに登録された少なくとも1つのアドレス範囲に対応するアクセスキーを公開するステップと、
    前記第1のAM書き込み要求に前記アクセスキーを含めるステップと、
    前記リモートノード上の前記AMハンドラを介して前記アクセスキーを調べて、前記第1のAM書き込み要求が許可されるかを検証するステップと、
    をさらに含む請求項1乃至のうちいずれか1項に記載の方法。
  8. リモートノードとローカルノードとにおけるリモートメモリアクセス(RMA)データ転送を実行する方法であって、
    前記ローカルノードから前記リモートノードにデータが書き込まれるRMA書き込みを、
    前記ローカルノードから前記リモートノード上のAMハンドラに第1のアクティブメッセージ(AM)書き込み要求を送信するステップであり、前記第1のAM書き込み要求は、前記データが書き込まれるべき前記リモートノード上のリモートメモリアドレス空間におけるアドレス範囲を識別する、ステップと、
    書き込まれるべきデータを前記ローカルノード上のソースバッファから読み出し、前記データを前記リモートノードに送信するステップと、
    前記リモートノードにより受信された前記データを、前記リモートメモリアドレス空間に書き込まれるべき前記データに前記第1のAM書き込み要求において識別される前記アドレス範囲を占有させるように処理するステップと、
    によって実行するステップ
    を含み、
    複数のAM書き込み要求を受信するステップであって、各AM書き込み要求は、後に送信されるAM書き込み要求に関連付けられたデータのブロックが書き込まれるべき前記リモートノード上の前記リモートメモリアドレス空間におけるアドレス範囲を識別し、各AM書き込み要求は、関連付けられたデータの前記ブロックを識別するしるしを含む、ステップ
    をさらに含む方法。
  9. 前記リモートノード上の前記AMハンドラを介して、前記リモートノード上のRMA書き込みキューに各AM書き込み要求をエンキューするステップと、
    前記ローカルノードからデータの複数のブロックを受信するステップであって、データの各ブロックは、事前に受信されたAM書き込み要求に関連付けられ、前記事前に受信されたAM書き込み要求を識別することができるしるしを含む、ステップと、
    前記RMA書き込みキューから前記AM書き込み要求をデキューするステップと、
    各々のデキューされたAM書き込み要求を、AM書き込み要求に関連付けられた前記の受信されたデータのブロックが前記リモートメモリアドレス空間においてどこに書き込まれるべきかを決定するように処理するステップと、
    をさらに含む請求項に記載の方法。
  10. データが前記リモートノードから読み出され、かつ前記ローカルノードに転送されるRMA読み出しを、
    前記リモートノード上の前記AMハンドラにAM読み出し要求を送信するステップであって、前記AM読み出し要求は、読み出されるべきデータの前記リモートメモリアドレス空間におけるアドレス範囲を識別する、ステップと、
    前記AM読み出し要求のメッセージを受信することに応答して、前記リモートノード上の前記AMハンドラを介して、読み出されるべきデータの前記リモートメモリアドレス空間における前記アドレス範囲を識別する前記AM読み出し要求に対応するRMA読み出し要求を生成するステップと、
    前記リモートノード上で前記RMA読み出し要求を処理するステップであって、前記RMA読み出し要求における前記アドレス範囲により定義されるとおりの前記リモートメモリアドレス空間から読み出されるべき前記データが、前記リモートメモリアドレス空間から取り出され、かつ前記ローカルノードに送信されることをもたらす、ステップと、
    前記リモートノードから送信される前記の取り出されたデータを、前記ローカルノード上の宛先バッファに書き込むステップと、
    によって実行するステップ、をさらに含む請求項又はに記載の方法。
  11. 前記AM読み出し要求のメッセージを受信することに応答して、前記リモートノード上の前記AMハンドラを介して、読み出されるべきデータの前記リモートメモリアドレス空間における前記アドレス範囲を識別する前記AM読み出し要求に対応するRMA読み出し要求を生成し、前記リモートノード上のRMA読み出し要求キューにエンキューするステップと、
    前記RMA読み出し要求キューから前記RMA読み出し要求をデキューするステップと、
    前記RMA読み出し要求における前記アドレス範囲により定義されるとおりの前記リモートメモリアドレス空間から読み出されるべき前記データを取り出し、前記の取り出されたデータを前記ローカルノードに送信するステップと、
    をさらに含む請求項10に記載の方法。
  12. 前記のデキューし、データを取り出し、送信するオペレーションは、前記リモートノード上の前記AMハンドラとは別個である前記リモートノード上のRMA読み出し機能によって実行される、請求項11に記載の方法。
  13. ネットワークインターフェースと、
    ローカルメモリアドレス空間を含むメモリと、
    前記ネットワークインターフェースを介して、前記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される第1のAM書き込み要求を受信することであって、前記第1のAM書き込み要求は、前記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、第1のデータが書き込まれるべき前記メモリにおける前記ローカルメモリアドレス空間における開始アドレスに書き込まれるべき該データを含み、
    前記第1のAM書き込み要求を、前記第1のAM書き込み要求から前記データを抽出し、かつ前記開始アドレスで始まる前記ローカルメモリアドレス空間におけるアドレス範囲に前記データを書き込むことによって扱い、
    前記リモート装置に、前記データが前記ローカルメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信する
    ように構成された書き込み要求アクティブメッセージ(AM)ハンドラと、
    を備え、
    前記第1のAM書き込み要求は、タグ付きメッセージングスキームによるタグ付きメッセージを含
    前記タグ付きメッセージは、前記リモート装置が前記第1のAM書き込み要求の意図された受信者であることを照合するように、前記リモート装置上のAMハンドラにより調べられる、
    装置。
  14. 前記リモート装置上のメモリにおけるリモートメモリアドレス空間に対するRMA書き込みに対応する第2のAM書き込み要求が生成され、かつ前記リモート装置に送信されるAM書き込みオペレーションを実行するように構成されたRMA書き込みモジュールであって、前記第2のAM書き込み要求は、第2のデータが書き込まれるべき前記リモートメモリアドレス空間における開始アドレスに書き込まれるべき該第2のデータを含む、RMA書き込みモジュールと、
    前記第2のデータを前記リモートメモリアドレス空間に成功裏に書き込むことに応じて前記リモート装置から送信されるAM書き込み応答を処理するように構成された書き込み応答AMハンドラと、
    をさらに備えた請求項13に記載の装置。
  15. ソースバッファ、をさらに備え、前記RMA書き込みモジュールは、
    前記リモートメモリアドレス空間に書き込まれるべき第3のデータを複数のパケットへと区分し、
    前記複数のパケットの各々について、
    パケットに対応するパケットデータを前記ソースバッファから読み出し、
    前記リモート装置上の書き込み要求AMハンドラに、前記パケットデータと該パケットデータが書き込まれるべき前記リモート装置上の前記リモートメモリアドレス空間におけるそれぞれの開始アドレスとを含むそれぞれのAM書き込み要求を送信する
    ようにさらに構成される、請求項14に記載の装置。
  16. 前記書き込み要求AMハンドラは、
    前記リモート装置から複数のAM書き込み要求を受信することであって、前記複数のAM書き込み要求の各々は、複数のパケットへと区分され、かつ前記ローカルメモリアドレス空間におけるそれぞれの開始アドレスにおいて前記ローカルメモリアドレス空間に書き込まれるべき第3のデータの、リモート書き込みに対応するそれぞれのパケットデータを含み、
    前記複数のAM書き込み要求の各々についての前記パケットデータを抽出し、AM書き込み要求により識別される前記開始アドレスで始まる前記ローカルメモリアドレス空間に前記パケットデータを書き込み、
    前記第3のデータの全体が前記ローカルメモリアドレス空間に書き込まれたことを検出し、
    前記リモート装置に、前記第3のデータが前記ローカルメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信する
    ようにさらに構成される、請求項13乃至15のうちいずれか1項に記載の装置。
  17. 前記ローカルメモリアドレス空間における宛先バッファと、
    読み出し応答AMハンドラと、
    AM読み出し要求を生成し、前記リモート装置上の読み出し要求AMハンドラに送信することであって、前記AM読み出し要求は、読み出されるべき前記リモート装置のデータのリモートメモリアドレス空間におけるアドレス範囲を識別し、
    前記AM読み出し要求に応答して、前記リモート装置から、前記リモートメモリアドレス空間から読み出された前記データを含むAM読み出し応答を受信し、
    前記AM読み出し応答を、前記読み出し応答AMハンドラで、前記AM読み出し応答から前記データを抽出し、かつ前記データを前記宛先バッファに書き込むことによって扱う
    ように構成されたRMA読み出しモジュールと、
    をさらに備えた請求項13乃至16のうちいずれか1項に記載の装置。
  18. 前記RMA読み出しモジュールは、データが前記リモート装置から読み出され、かつ複数のパケットを使用して転送されるRMA読み出しを実行するようにさらに構成され、前記複数のパケットの各々についてのデータは、
    それぞれのAM読み出し要求を前記リモート装置上の前記読み出し要求AMハンドラに送信することであって、前記AM読み出し要求は、読み出されるべきパケットデータの前記リモートメモリアドレス空間におけるアドレス範囲を識別し、
    各々のそれぞれのAM読み出し要求に応答して、前記リモート装置から、前記リモートメモリアドレス空間から読み出された前記パケットデータを含むAM読み出し応答を受信し、
    前記AM読み出し応答を、前記読み出し応答AMハンドラで、前記AM読み出し応答から前記パケットデータを抽出し、かつ前記パケットデータを前記宛先バッファに書き込むことによって扱う
    ことによって遠隔的に読み出される、請求項17に記載の装置。
  19. 前記リモート装置から、読み出されるべきデータを含むデータの前記ローカルメモリアドレス空間におけるアドレス範囲を識別するAM読み出し要求を受信し、
    前記AM読み出し要求において識別される前記アドレス範囲から前記データを取り出し、
    前記リモート装置に、取り出された前記データを含むAM応答を送信する
    ように構成された読み出し要求AMハンドラ
    をさらに含む請求項13乃至18のうちいずれか1項に記載の装置。
  20. ネットワークインターフェースと、
    ローカルメモリアドレス空間を含むメモリと、
    前記ネットワークインターフェースを介して、前記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される複数のAM書き込み要求を受信することであって、各AM書き込み要求は、前記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、前記ローカルメモリアドレス空間に書き込まれるべきそれぞれのデータと該それぞれのデータの先頭が書き込まれるべき開始アドレスとを含み、
    RMA書き込み要求を生成し、前記RMA書き込み要求をRMA書き込みキューにエンキューする
    ように構成された書き込み要求アクティブメッセージ(AM)ハンドラと、
    前記リモート装置からデータの複数のブロックを受信することであって、データの各ブロックは、事前に受信されたAM書き込み要求に関連付けられ、対応するRMA書き込み要求を識別することができるしるしを含み、
    前記RMA書き込みキューから前記RMA書き込み要求をデキューし、
    各々のデキューされたRMA書き込み要求を、RMA書き込み要求に関連付けられた前記の受信されたデータのブロックが前記ローカルメモリアドレス空間においてどこに書き込まれるべきかを決定するように処理する
    ように構成されたRMA進行モジュールと、
    を備えた装置。
  21. 前記メモリにおけるソースバッファと、
    前記リモート装置にAM書き込み要求を送信することであって、前記AM書き込み要求は、前記データが書き込まれるべき前記リモート装置上のメモリにおけるリモートメモリアドレス空間におけるアドレス範囲を識別し、
    書き込まれるべき前記データを前記ソースバッファから読み出し、
    前記データを前記リモート装置に送信することであって、前記データは、前記AM書き込み要求を送信した後に送信され、前記データは、送信される前記データを前記AM書き込み要求とマッチさせるのに使用されるように構成されたしるしと共に送信される
    ように構成されたRMA書き込みモジュールと、
    をさらに備えた請求項20に記載の装置。
  22. RMA読み出し要求キューと、
    前記リモート装置から、読み出されるべきデータの前記ローカルメモリアドレス空間におけるアドレス範囲を識別するAM読み出し要求を受信し、
    前記AM読み出し要求のメッセージを受信することに応答して、読み出されるべきデータの前記ローカルメモリアドレス空間における前記アドレス範囲を識別する対応するRMA読み出し要求を生成し、
    前記RMA読み出し要求キューに前記RMA読み出し要求をエンキューする
    ように構成された読み出し要求AMハンドラと、
    前記RMA読み出し要求キューから前記RMA読み出し要求をデキューし、
    前記RMA読み出し要求における前記アドレス範囲により定義されるとおりの前記ローカルメモリアドレス空間からデータを読み出し、
    読み出された前記データを前記リモート装置に送信する
    ように構成されたRMA進行モジュールと、
    をさらに備えた請求項20又は21に記載の装置。
  23. ネットワークインターフェースと、ローカルメモリアドレス空間を含むメモリと、を備えた装置に、
    前記ネットワークインターフェースを介して、前記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される第1のアクティブメッセージ(AM)書き込み要求を受信するステップであって、前記第1のAM書き込み要求は、前記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、第1のデータが書き込まれるべき前記メモリにおける前記ローカルメモリアドレス空間における開始アドレスに書き込まれるべき該データを含む、ステップと、
    前記第1のAM書き込み要求を、前記第1のAM書き込み要求から前記データを抽出し、かつ前記開始アドレスで始まる前記ローカルメモリアドレス空間におけるアドレス範囲に前記データを書き込むことによって扱うステップと、
    前記リモート装置に、前記データが前記ローカルメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信するステップと、
    を実行させ、
    前記第1のAM書き込み要求は、タグ付きメッセージングスキームによるタグ付きメッセージを含
    前記タグ付きメッセージは、前記リモート装置が前記第1のAM書き込み要求の意図された受信者であることを照合するように、前記リモート装置上のAMハンドラにより調べられる、
    コンピュータプログラム。
  24. ネットワークインターフェースと、ローカルメモリアドレス空間を含むメモリと、を備えた装置に、
    前記ネットワークインターフェースを介して、前記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される複数のアクティブメッセージ(AM)書き込み要求を受信するステップであって、各AM書き込み要求は、前記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、前記ローカルメモリアドレス空間に書き込まれるべきそれぞれのデータと該それぞれのデータの先頭が書き込まれるべき開始アドレスとを含む、ステップと、
    RMA書き込み要求を生成し、前記RMA書き込み要求をRMA書き込みキューにエンキューするステップと、
    前記リモート装置からデータの複数のブロックを受信するステップであって、データの各ブロックは、事前に受信されたAM書き込み要求に関連付けられ、対応するRMA書き込み要求を識別することができるしるしを含む、ステップと、
    前記RMA書き込みキューから前記RMA書き込み要求をデキューするステップと、
    各々のデキューされたRMA書き込み要求を、RMA書き込み要求に関連付けられた前記の受信されたデータのブロックが前記ローカルメモリアドレス空間においてどこに書き込まれるべきかを決定するように処理するステップと、
    を実行させるコンピュータプログラム。
  25. 請求項23又は24に記載のコンピュータプログラムを記憶した非一時的マシン可読媒体。
JP2015148205A 2014-09-02 2015-07-28 アクティブメッセージによるrmaapiのサポート Active JP6189898B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/475,337 2014-09-02
US14/475,337 US9632973B2 (en) 2014-09-02 2014-09-02 Supporting RMA API over active message

Publications (2)

Publication Number Publication Date
JP2016053946A JP2016053946A (ja) 2016-04-14
JP6189898B2 true JP6189898B2 (ja) 2017-08-30

Family

ID=54062991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015148205A Active JP6189898B2 (ja) 2014-09-02 2015-07-28 アクティブメッセージによるrmaapiのサポート

Country Status (8)

Country Link
US (1) US9632973B2 (ja)
JP (1) JP6189898B2 (ja)
KR (1) KR101752964B1 (ja)
CN (1) CN105389120B (ja)
DE (1) DE102015112634A1 (ja)
FR (1) FR3025331A1 (ja)
GB (1) GB2531864B (ja)
TW (1) TWI582609B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448901B1 (en) * 2015-12-15 2016-09-20 International Business Machines Corporation Remote direct memory access for high availability nodes using a coherent accelerator processor interface
JP6725662B2 (ja) 2016-07-28 2020-07-22 株式会社日立製作所 計算機システムおよび処理方法
US20180089044A1 (en) * 2016-09-27 2018-03-29 Francesc Guim Bernat Technologies for providing network interface support for remote memory and storage failover protection
US11763351B2 (en) * 2017-03-29 2023-09-19 Oklahoma Blood Institute Fundraising platform
CN110704343B (zh) * 2019-09-10 2021-01-05 无锡江南计算技术研究所 面向众核处理器访存和片内通信的数据传输方法与装置
TWI761846B (zh) * 2020-06-01 2022-04-21 鴻海精密工業股份有限公司 自動資料傳輸方法、裝置及存儲介質
WO2023044861A1 (en) * 2021-09-26 2023-03-30 Intel Corporation Concept for providing access to remote memory

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448698A (en) 1993-04-05 1995-09-05 Hewlett-Packard Company Inter-processor communication system in which messages are stored at locations specified by the sender
JPH08180001A (ja) * 1994-04-12 1996-07-12 Mitsubishi Electric Corp 通信方式及び通信方法及びネットワークインタフェース
JP2736237B2 (ja) 1995-03-06 1998-04-02 技術研究組合新情報処理開発機構 遠隔メモリアクセス制御装置
US6240444B1 (en) * 1996-09-27 2001-05-29 International Business Machines Corporation Internet web page sharing
US20050080869A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Transferring message packets from a first node to a plurality of nodes in broadcast fashion via direct memory to memory transfer
US7536468B2 (en) * 2004-06-24 2009-05-19 International Business Machines Corporation Interface method, system, and program product for facilitating layering of a data communications protocol over an active message layer protocol
US7636813B2 (en) 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7694310B2 (en) 2006-08-29 2010-04-06 International Business Machines Corporation Method for implementing MPI-2 one sided communication
US7979645B2 (en) 2007-09-14 2011-07-12 Ricoh Company, Limited Multiprocessor system for memory mapping of processing nodes
US7925842B2 (en) 2007-12-18 2011-04-12 International Business Machines Corporation Allocating a global shared memory
US8452888B2 (en) 2010-07-22 2013-05-28 International Business Machines Corporation Flow control for reliable message passing
CN102306115B (zh) * 2011-05-20 2014-01-08 华为数字技术(成都)有限公司 异步远程复制方法、***及设备

Also Published As

Publication number Publication date
US20160062944A1 (en) 2016-03-03
FR3025331A1 (ja) 2016-03-04
KR20160027902A (ko) 2016-03-10
DE102015112634A1 (de) 2016-03-03
KR101752964B1 (ko) 2017-07-03
CN105389120B (zh) 2018-09-21
TWI582609B (zh) 2017-05-11
GB201513562D0 (en) 2015-09-16
US9632973B2 (en) 2017-04-25
JP2016053946A (ja) 2016-04-14
CN105389120A (zh) 2016-03-09
GB2531864A (en) 2016-05-04
GB2531864B (en) 2019-04-24
TW201621699A (zh) 2016-06-16

Similar Documents

Publication Publication Date Title
JP6189898B2 (ja) アクティブメッセージによるrmaapiのサポート
US11770344B2 (en) Reliable, out-of-order transmission of packets
US10917344B2 (en) Connectionless reliable transport
US10673772B2 (en) Connectionless transport service
US10788992B2 (en) System and method for efficient access for remote storage devices
US20200314181A1 (en) Communication with accelerator via RDMA-based network adapter
KR102023122B1 (ko) 탄성 패브릭 어댑터 - 무접속의 신뢰할 수 있는 데이터그램
US7937447B1 (en) Communication between computer systems over an input/output (I/O) bus
US9411775B2 (en) iWARP send with immediate data operations
CN109690510B (zh) 用于将数据分发到高性能计算网络和基于云的网络中的多个接收器的多播装置和方法
US10880204B1 (en) Low latency access for storage using multiple paths
US6775719B1 (en) Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network
US20020141424A1 (en) Host-fabric adapter having work queue entry (WQE) ring hardware assist (HWA) mechanism
WO2017000593A1 (zh) 报文处理方法及装置
US8694701B2 (en) Recovering dropped instructions in a network interface controller
US20200272579A1 (en) Rdma transport with hardware integration
US10154079B2 (en) Pre-boot file transfer system
US10877911B1 (en) Pattern generation using a direct memory access engine
US10255213B1 (en) Adapter device for large address spaces
US7764676B1 (en) Method and system for processing network information
US11405324B1 (en) Packet serial number validation
US9936003B1 (en) Method and system for transmitting information in a network
US8478909B1 (en) Method and system for communication across multiple channels

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170502

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170803

R150 Certificate of patent or registration of utility model

Ref document number: 6189898

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250