[go: up one dir, main page]

JP5869135B2 - コプロセッサのためのダイレクトi/oアクセス - Google Patents

コプロセッサのためのダイレクトi/oアクセス Download PDF

Info

Publication number
JP5869135B2
JP5869135B2 JP2014533274A JP2014533274A JP5869135B2 JP 5869135 B2 JP5869135 B2 JP 5869135B2 JP 2014533274 A JP2014533274 A JP 2014533274A JP 2014533274 A JP2014533274 A JP 2014533274A JP 5869135 B2 JP5869135 B2 JP 5869135B2
Authority
JP
Japan
Prior art keywords
rdma
memory
access request
peripheral device
peripheral
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
JP2014533274A
Other languages
English (en)
Other versions
JP2014531685A (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 JP2014531685A publication Critical patent/JP2014531685A/ja
Application granted granted Critical
Publication of JP5869135B2 publication Critical patent/JP5869135B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明の実施例は、一般的に、コンピューターデバイスに適用される。より特定的には、周辺機器のためのメモリーアクセス管理に関する。
コンピューターシステムは、ネットワーク又はバス構成といった相互接続構造を介してお互いに接続されている種々のデバイスを含んでいる。これらのデバイスは、典型的にはローカルメモリーを有しており、コンピューター環境の中で処理速度と適応性を提供するために複数のデバイスが並行して動作される。
リモートダイレクトメモリーアクセス(RDMA)は、ネットワークインターフェイスカード(NIC)の機能であり、コンピューターデバイスが、別のコンピューターデバイスのメモリーの情報にアクセスできるようにする。特に、RDMA技術を介して、コンピューターデバイスは、ホストオペレーティングシステム(OS)を巻き込むことなく、別のコンピューターデバイスのメモリーから情報を読み出すことができる。別のコンピューターデバイスのメモリーに情報を書き込むことも同様である。
図1は、CPUとメモリーの複合物を有している周辺機器を含んだ従来技術に係るシステムを図示している。システム100は、システムCPU110、システムメモリー120、周辺機器コントローラー130、周辺機器140、および、RDMAデバイス150を含んでいる。周辺機器140は、プロセッサ141及びメモリー142を含んでいる。周辺機器140及びRDMAデバイス150は、「ピア(”peer”)」デバイスとして参照されてよい。
周辺機器140は、RDMA150の中に保管されているデータにアクセスする必要があり、その逆もまた同様である。現在、インフィニバンド(InfiniBand)仕様又はRDMAコンソーシアム仕様、等といった多くの相互接続構造規格の実施は、ピアデバイスが、別のピアデバイスのアドレス空間において保管されているデータに直接的にアクセスすることをできなくしている。
現在のソリューションは、ピアデバイスが、リクエストされたデータを共通に利用可能なメモリーに対して書き込むことを要求する。この説明図においては、システムメモリー120であり、相互接続性構造に接続されたあらゆる周辺機器によってアクセス可能である。しかしながら、そうしたデータ転送のために共通のシステムメモリーを使用することは時間の浪費であり、処理のオーバーヘッドを増加させるものである。さらに、共通システムのメモリーを使用することは、周辺機器の処理動作を遅くしてしまう。
本発明の実施例は、ホストと、CPU及びメモリーの複合体を含む周辺機器(代替的には、ここにおいてプロセッサアドインカードとして言及されるもの)との間で、リモートダイレクトメモリーアクセス(RDMA)デバイスハードウェアを共有することができるシステム、装置、および、方法を説明する。本発明の実施例は、プロセッサアドインカード(add−in card)とRDMAデバイスとの間でのピアツ−ピア(peer−to−peer)のデータ転送のための周辺コンポーネント相互接続エクスプレス(PCIe)といった相互接続ハードウェアを利用する。ホストシステムは、メモリー及びレジスターをRDMAデバイスに対して、及び/又は、RDMAデバイスからマップするためのモジュール又はロジックを含んでよい。これにより、ホストシステムのI/Oオペレーティングシステムと同時に、アドインカードのプロセッサ上のユーザーモードアプリケーションに対して、または、アプリケーションから直接的に実行されるべきI/Oをできるようにしている。
以降の記述は、本発明の具体化に係る実施例によって与えられる例解を有する図面の説明を含んでいる。図面は、例示として理解されるべきであり、本発明を限定するものとして理解されるべきではない。ここにおいて使用されるように、一つまたはそれ以上の「実施例」は、本発明に係る少なくとも一つの実施に含まれる所定の機能、構成、または、特性を表しているものとして理解されるべきである。このように、ここにおいて表れている「一つの実施例において」または「代替的な実施例において」といったフレーズは、本発明に係る種々の具体化及び実施を説明するものであり、必ずしも全てが同一の実施例を参照する必要はない。しかしながら、それらはお互いに排他的であることも要しない。
図1は、CPU及びメモリーの複合体を有する周辺機器を含む従来技術のシステムを示している。 図2は、本発明の一つの実施例に従ったブロックダイヤグラムである。 図3は、本発明の一つの実施例に従ったシステムコンポーネントのブロックダイヤグラムである。 図4は、本発明の一つの実施例に従ったプロセスのフローチャートである。 図5は、本発明の一つの実施例に従ったプロセスのフローチャートである。 図6は、本発明の一つの実施例に従ったホストとアドインカードモジュールのブロックダイヤグラムである。 図7は、本発明の一つの実施例を利用するシステムのブロックダイヤグラムである。
所定の詳細及び実施例に係る説明が後に続く。図面の説明を含むものであり、図面は以降に記述される実施例のいくつか又は全てを表している。他の可能性のある具体化、または、ここにおいて表される本発明の概念に係る実施例の説明も同様に後に続く。本発明の実施例の概要が以下に提供され、図面に関してより詳細な説明が続く。
本発明の具体例を利用するプロセッサアドインカードの実施例は、グラフィックプロセッサユニット(GPU)を有するグラフィックプロセッササブシステムと、高度に並列なアプリケーションのパフォーマンスを改善するための複数の小さく、低消費電力なプロセッサコア又はマルチコアプロセッサを有するプロセッサアドインカードを含んでいる。異種混在(heterogeneous)が加速されたコンピューター環境においては、しかしながら、共通で、規格ベースのプログラミング及びコミュニケーションモデルを提供することは難しいと証明されている。このことは、クラスター(cluster)において特に真実であり、全てのプロセッサからの効率的なコミュニケーションメカニズムを有することが望ましい。プロセッサが、プライマリーシステムのCPUであるか、アドインカードのコプロセッサコアであるかにかかわらずである。共通で、規格ベースのプログラミングモデルは、アプリケーションの開発とメインテナンスを簡素化するだけでなく、システムを使用するためのより大きな適応性を与えてシステムのパフォーマンスの全ての利点を得ることができる。
クラスターは、一般的に、お互いに密接に動作するようにリンク又は相互接続されたコンピューターシステムのグループを参照するものである。それらは、多くの観点で一つのコンピューターを形成するようにリンク等されている。クラスターは、一般的に、単独のコンピューターによって提供されるものよりも大幅に改善されたパフォーマンス及び/又は可用性を提供する。クラスターは、また、典型的には、同等な速度と可用性のある単独のコンピューターよりも、コスト効率が良い。
大規模なクラスターシステムの構築に対する重要な見地は、相互接続である。相互接続は、システムの全てを一緒に接続する「ファブリック(”fabric”)」を含んでよい。システムをファブリックに対してインターフェイスするホストアダプターも同様である。クラスターは、インフィニバンド仕様又はRDMAコンソーシアム仕様と調和した相互接続を利用してよい。インフィニバンドは、本来高性能コンピューターにおいて使用されたスイッチファブリックコミュニケーションリンク(switched fabric communication link)であり、スケーラビリティと同様に、サービス品質とフェイルオーバー機能を提供する。インフィニバンド相互接続は、一般的に、より小さなレイテンシー(latency)、より高いバンド幅、および、改善された信頼性を提供する。
インフィニバンドといったRDMAアーキテクチャーは、メッセージ受渡しオペレーティングシステムのレイテンシーを削減し、かつ、バンド幅を増加させることによって、高パフォーマンスコンピューティング(HPC)クラスターアプリケーションのパフォーマンス改善において、非常に成功してきた。RDMAアーキテクチャーは、カーネルバイパス(kernel−bypass)、ダイレクトデータ配置を通じて、ネットワークインターフェイスをアプリケーションに対して大変近くに移動することによってパフォーマンスを改善し、かつ、アプリケーションの要求に合せるようにI/Oオペレーティングシステムをより広くコントロールすることができる。
RDMAアーキテクチャーは、ハードウェアにおいて、プロセス分離、保護、および、アドレス変換をすることができる。このアーキテクチャーは、ホストとコプロセッサアプリケーションが分離されたアドレスドメインにおいて実行されるコプロセッサコア環境に対して相性がいい。しかしながら、従来技術においては、取り付けられたプロセッサ(つまり、プロセッサアドインカード)に対してRDMAの利益は利用可能ではなかった。本発明の実施例は、RDMAアーキテクチャーの利益を取り付けられたプロセッサに対して直接的に提供し、図1に示すようなソリューションに対する必要性を取り除く。図1では、取り付けられたプロセッサに係る内外のコミュニケーションは、ホストメモリーの中への追加のデータコピーを招くことを要し、実質的に、メッセージレイテンシーと達成可能なバンド幅の両方に影響を与えている。
図2は、本発明の一つの実施例に従ったシステムのブロックダイヤグラムである。システム200は、システムCPU210、システムメモリー220、プラットフォームコントローラーハブ(PCH)230、周辺機器240、および、RDMAデバイス250を含んでいる。この実施例において、周辺機器240は、プロセッサアドインカードであり、プロセッサ241とメモリー242を含んでいる。周辺機器240とRDMAデバイス250は、「ピア(”peer”)」デバイスとして参照されてよい。
周辺機器240は、RDMAデバイス250の中に保管されているデータにアクセスをリクエストし得る。周辺機器が、PCIeリンクを介してPCH230と通信可能に接続されているものと示されている一方で、RDMAデバイスは、PCIeルートポート231を介してPCH130に対して動作可能に接続されているものと示されている。この実施例において、周辺機器240は、PCHを含んでおらず、従って、ホストチャンネルアダプター/ネットワークインターフェイスコントローラー(HCA/NIC)カードをRDMAデバイス250に専念させる能力を有していない(しかしながら、PCH又はオンボードのRDMAデバイスを伴う内部PCIeバスを含んでいる周辺機器も、また、以下に説明される本発明の実施例を利用し得ることが理解されるべきである)。PCIe相互接続は、単独では、ピアデバイスが、別のピアデバイスのアドレス空間の中に保管されているデータにアクセスするようにはできない。
本発明の実施例は、システム200、PCH230、および、周辺機器240に含まれているロジック及び/又はモジュールについて説明する。周辺機器が、RDMAデバイス250の中に含まれているデータに対して直接的にアクセスできるようにするものである。つまり、システムメモリー220は、図1のシステム100といった従来技術のソリューションにおいて必要とされたようには必要とされない。リクエストされたデータをホストメモリーの中に受け取るための、ホストメモリーに対する必要性を取り除くことによって、本発明の実施例は、著しく、メッセージレイテンシーを減少させ、達成可能なバンド幅を増加させる。
図3は、本発明の一つの実施例に従ったシステムコンポーネントのブロックダイヤグラムである。この実施例において、PCH310、周辺機器320、および、RDMA330は、システムバス390(ここにおいては、代替的にイントラノード(intra−node)バスとして参照される)を介してお互いに通信可能に接続されている。周辺機器320は、図2に係る機器240と類似のものであり、RDMAデバイス330を専念させる能力を有していない。
この実施例において、周辺機器320のメモリー321はリクエストキュー(queue)322を含んでいる。リクエストキューは、RMDAデバイス330のメモリー331に向けて指示されたリクエストを保管している。周辺機器のCPU323は、リクエストキューがメモリー331へのアクセスに対する未解決のリクエストを有していることを、RDMAデバイス330に通知する。一つの実施例において、RDMAデバイス330は、キュー322の中に未解決のリクエストがいくらかでもある場合に通知される。他の実施例において、RDMAデバイス330は、キュー322の中の未解決のリクエストの数量が閾値を超えた場合に通知される。
CPU323は、PCH310の中に含まれる仮想アドレス311に対して書き込むことによって、未解決のリクエストについてRDMAデバイス350に通知する。仮想アドレスは、RDMAデバイスのメモリー331に対してマップされたメモリーである。未解決のリクエストは、実行されるべきオペレーションを記述することができる。つまり、send、receive、write、read、atomic compare/exchange、atomic fetch/add、等である。このように、本発明の実施例は、周辺機器320からホストシステムのPCH310への「プロキシー(”proxy”)」リクエストに対して記述されてよい。
図4は、本発明の一つの実施例に従ったプロセスのフローチャートである。ここにおいて説明されるように、フローチャートは、種々のプロセス動作のシーケンスに係る実施例を提供する。所定のシーケンス又は順序において示されてはいるが、別に指定がなければ、動作の順序は変更することができる。従って、図示された実施例は、単なる例示として理解されるべきであり、図示されたプロセスは、異なる順序で実行することができ、いくつかの動作は並行に実行され得る。加えて、一つまたはそれ以上の動作は、本発明に種々の実施例において除外することができる。従って、全ての動作が、それぞれの実施において必要とされるわけではない。他のプロセスフローも可能である。
プロセス400は、プロセッサコアとメモリーを有する周辺機器による、RDMAデバイスのメモリーへのアクセスに対するリクエストを受け取るオペレーションを含んでいる、410。そのリクエストは、周辺機器のメモリーにおけるキューの中に保管されてよい。いくつかの実施例において、周辺機器は複数のプロセッサコアを含んでおり、それぞれのプロセッサコアに対して分離されたキューを維持している。
周辺機器は、PCHの中に含まれている仮想アドレスに対してデータを送付することによって、キューの中のアクセスリクエストメッセージをRDMAデバイスに通知する、420。その仮想アドレスは、PCHの中に含まれており、RDMAデバイスのメモリーにマップされている。PCHは、RDMAデバイスにマップされた仮想アドレスを利用する、430。そして、RDMAデバイスのメモリーに対してRDMAアクセスリクエストメッセージを伝送する、440。そのRDMAアクセスリクエストメッセージは、周辺機器の中にキューされたアクセスリクエストメッセージに基づくものである。
RDMAデバイスは、RDMAアクセスリクエストメッセージの受け取りに応じて、周辺機器からのリクエストを完了する、450。いくつかの実施例において、RDMAデバイスは、PCHの中に含まれ、かつ、周辺機器のメモリーにマップされている仮想アドレスに対して完了メッセージを送付する。その仮想アドレスは、完了メッセージを保管するための完了キューを表してよい。例えば、RDMAアクセスリクエストメッセージがRDMA読み出しリクエストを有する場合、周辺機器によってリクエストされたデータを含んでいるデータメッセージが、PCHを介して周辺機器に対して送付される。RDMAアクセスリクエストメッセージがRDMA書き込みリクエストを有する場合、PCHは、書き込まれるべきデータを含んでいるデータメッセージをRDMAデバイスに対して伝送する。いくつかの実施例において、RDMA動作の完了は、RDMAデバイスによって完了メッセージがいつ送付されるかを決定するものではない。例えば、インフィニバンド仕様は、リクエストは、それらが投稿された順序で実行されることを要求する。先の全てのRDMA動作が完了するまで、周辺機器は完了メッセージを受け取らないことを意味するものである。
図5は、本発明の一つの実施例に従ったプロセスのフローチャートである。プロセス500は、周辺機器(プロセッサコアも含んでいる)のメモリーへのアクセスに対するリクエストを受け取るオペレーションを含んでいる、510。そのリクエストは、RDMAデバイスのメモリーにおけるキューの中に保管されてよい。
RDMAデバイスは、PCHの中に含まれている仮想アドレスに対してデータを送付することによって、キューの中のアクセスリクエストメッセージをホストシステムに通知する、520。その仮想アドレスは、周辺機器のメモリーにマップされている。PCHは、アクセスリクエストメッセージパラメーターとして、RDMAデバイスにマップされた仮想アドレスを利用する、530。そして、周辺機器のメモリーに対してアクセスリクエストメッセージを伝送する、540。そのアクセスリクエストメッセージは、RDMAデバイスの中にキューされたアクセスリクエストメッセージに基づいて、周辺機器に対して伝送される。
周辺機器は、PCHからのアクセスリクエストメッセージの受け取りに応じて、RDMAデバイスからのリクエストを完了する。例えば、アクセスリクエストメッセージが読み出しリクエストを有する場合、RDMAデバイスによってリクエストされたデータを含んでいるデータメッセージが、PCHを介してRDMAデバイスに対して送付される。アクセスリクエストメッセージが書き込みリクエストを有する場合、RDMAデバイスは、PCHを介して、書き込まれるべきデータを含んでいるデータメッセージを周辺機器に対して伝送する。RDMAデバイスは、RDMA動作及び/又はパラメーターのタイプに応じて、PCHの中に含まれ、かつ、周辺機器のメモリーにマップされている仮想アドレスに対して完了メッセージを送付する、550。その仮想アドレスは、完了メッセージを保管するための完了キューを表してよい。
図6は、本発明の一つの実施例に従ったホストとプロセッサアドインカードモジュールのブロックダイヤグラムである。上述のように、本発明の実施例は、インフィニバンド仕様(例えば、規格リリース1.0.a、2001年7月19日発行)に準じた相互接続を利用してよい。インフィニバンドは、本来高性能コンピューターにおいて使用されるスイッチファブリックコミュニケーションリンクであり、スケーラビリティと同様に、サービス品質とフェイルオーバー機能を提供する。インフィニバンド相互接続は、一般的に、より小さなレイテンシー、より高いバンド幅、および、改善された信頼性を提供する。インフィニバンドは、コンピューターシステムのコンポーネントの中、および、コンピューターの中で情報を移動する方法を提供する。インフィニバンドは、コンピューターのCPUが、非常に高いパフォーマンスでI/Oデバイス及び他のCPUと直接的にコミュニケーションできるようにする。インフィニバンド技術は、あらゆるネットワークに係るデータセンターのバックエンド(back end)を対象としている。ネットワークインフラストラクチャーのフロントエンド及びミドルエンドは、典型的には、従来のイーサネット(登録商標)(Ethernet)技術を含んでいる。別の言葉で言えば、インフィニバンド及びイーサネット技術は、両方とも同一のホストによって使用され得るものである。
ホスト610と周辺機器カード630は、種々のインフィニバンドモジュール(以下に説明される)を含むように示されており、PCIe相互接続660を介してRDMAデバイス650と通信可能に接続されている。以下に説明するように、RDMAデバイス650によって受け取られるRDMAメッセージは、RDMAコンソーシアム仕様(例えば、RDMAプロトコル規格(バージョン1.0)、2002年10月21日発行)に準じてよい。RDMAコンソーシアムのRDMAプロトコルは、TCP/IPプロトコルにおけるTCP層の上で規定されている。従って、RDMA動作は、プロトコルスタックのトップから送信器側のボトムまで進み、次に、プロトコルスタックを越えて受信器側のトップまで進む。本発明の実施例によって利用されるRDMAプロトコルは、基本のTCP/IP処理ハードウェアを構築することを含んでよい。パケットを受け取り、TCP/IPを停止し、TCP/IPを通してアプリケーションに対してパケットを処理し、そして、データ及びメモリーに書き込むためのアプリケーション層でのアドレスを抽出することである。RDMAプロトコルは、データ転送をより効率的にする(特により大きなデータペイロードに対して)ことによって、パケットをメモリーにコピーすることを防ぐことができる(そして、その後にデータペイロードをメモリーにコピーする)。
この実施例において、ホスト610上のモジュールと周辺機器630はお互いにコミュニケーションし、PCIe相互接続660をわたりRDMAデバイス650に対して直接的なアクセスを有している。モジュールは、RDMAデバイスのリソースを管理するためにPCIe相互接続660をわたりプロキシーオペレーションに対するスプリットドライバー(split−deriver)モデルを使用する。
ホスト610は、インフィニバンドベースのソフトウェアコミュニケーションスタックを含むように図示されている。メッセージパッシングインターフェイス(MPI)アプリケーション611、RDMA APIであるユーザーモードダイレクトアクセスプロバイダーライブラリー(uDAPL)612、IBバーブ(verb)(つまり、機能)ライブラリー613、ベンダーライブラリー614、IBユーバーブ(uverb)635、および、IBコア636を含んでいる。ホストと周辺機器は、さらに、以下に説明されるモジュールとして実行される本発明の実施例を利用する。
ホスト610は、IBプロキシーデーモン(daemon)618を含んでいる。IBプロキシーデーモンは、ホストユーザーモードのアプリケーションであり、基底にあるベンダードライバー617に対するコール(call)のためにIBプロキシーサーバー619(以下に説明される)に対してユーザーモードプロセスコンテクスト(context)を提供する。ユーザーモードプロセスコンテクストは、ベンダードライバー617を変更することなくRDMAデバイス650のメモリーの仮想アドレスマッピングを実行するために使用され得る。
ホスト610は、さらに、IBプロキシーサーバー619を含んでおり、IBプロキシーサーバーはホストカーネルモジュールを有している。この実施例において、そのIBプロキシーサーバーは、コミュニケーションと周辺機器630(以下に説明される)のIBプロキシークライアント638のためのコマンドサービスを提供する。この実施例において、IBプロキシーサーバー619は、クライアント接続をリスン(listen)し、RDMAデバイスの追加、除去、および、イベント通知メッセージをリレーする。IBプロキシーサーバー619は、さらに、IBプロキシークライアント638のためにIBコアレイヤー616に対するカーネルモードIBバーブコールを開始して、その結果を戻すことができる。
周辺機器630は、IBプロキシークライアント638を含んでおり、IBプロキシークライアントはカーネルモジュールを有している。そのIBプロキシークライアントは、ホスト610上でカーネルモードIBバーブを実行するために、ベンダープロキシードライバー637(以下に説明される)に対してプログラミングインターフェイスを提供する。インターフェイスは、さらに、コマンドのフォーマット及びコミュニケーションの実行に係る詳細を抽出し得る。IBプロキシークライアント638は、所定のデバイスの追加、除去、および、ベンダープロキシードライバー637へのイベント通知に対するコールバック(callback)を呼び出す。
周辺機器630は、さらに、ベンダープロキシードライバー637を含んでおり、ベンダープロキシードライバーはカーネルモジュールを有している。所定のRDMAデバイスをサポートするために異なるベンダープロキシードライバーが使用されてよい。そのベンダープロキシードライバーそれぞれは、RDMAのデバイスの追加、除去、および、所定のPCIeドライバーからのイベント通知をIBプロキシークライアント638に登録し得る。ベンダープロキシードライバー637は、カーネルモードIBバーブコールを実行するために、IBプロキシークライアント638によって提供されるプログラミングインターフェイスを使用してよい。そのベンダープロキシードライバーは、さらに、ベンダーライブラリー634とホスト610上のベンダードライバー617との間で共有されるあらゆるプライベートデータの解釈及び変換を取り扱う。
この実施例において、ホスト610と周辺機器630の両方は、シンメトリックコミュニケーションインターフェイス(SCIF)モジュール620と640を、それぞれに含んでいる。そのSCIFモジュールは、シングルプラットフォームの中でイントラノード(intra−node)コミュニケーションのためのメカニズムを提供する。SCIFは、ホスト610と周辺機器630との間で対称なAPIを提供する一方で、PCIeにわたるコミュニケーション(および、関連する周辺機器ハードウェアのコントロール)の詳細を抽出する。
上述のモジュールに加えて、本発明の実施例は、IBコアレイヤー616におけるコールを利用して、ベンダーライブラリー614及び634とベンダードライバー617との間でプライベートデータを転送する。メモリーをRDMAデバイス650に対してマッピングすることも同様である。
上記の「バーブ(”verb”)」(つまり、機能)は、RDMAデバイス650に向けたPDMAオペレーションを実行する。バーブは、特権クラスと非特権クラスに分類されてよい。特権バーブは、典型的にRDMAハードウェアのリソースを割り当て、管理するために使用され、ベンダードライバー617によって実施される。周辺機器630上で稼働しているアプリケーションのために、これらの特権バーブが、ベンダープロキシーサーバー637を通じてホスト610上のベンダードライバー617に対してフォワードされる。一旦、ハードウェアが割り当てられ開始されると、非特権バーブは、カーネルをバイパスし、リソース割り当ての最中にアプリケーションアドレス空間の中にマップされたメモリーを使用して、ユーザーモードからハードウェアに対する直接的なアクセスを許可する。同様に、RDMAデバイスは、キューにアクセスすることができ、プロセスアドレス空間へ、または、プロセスアドレス空間から直接的にデータ転送を実行することができる。このように、本発明の実施例は、周辺機器630上のクライアントプロセスを、まるでホスト610上の別の「ユーザーモード」プロセスであるかのようにする。
従って、上記のモジュールにより、ホスト610は、RDMAデバイス650のメモリーにアクセスするための、周辺機器630のプロセッサコアからのアクセスリクエストメッセージに係る通知を受け取ることができる。その通知は、ホスト610及びRDMAデバイス650のメモリーにマップされたメモリー(例えば、図3に示されるように)の中に含まれる仮想アドレスにおいて受け取られる。ホストデバイス610は、そのアクセスリクエストメッセージに基づいて、RDMAデバイスに対してRDMAアクセスリクエストを転送する。ここで、リクエストは仮想アドレスRDMAパラメーターを含んでいる。従って、データリクエストのタイプが何であれ、アクセスリクエストメッセージは、例えば、send、receive、write、read、atomic compare/exchange、atomic fetch/add、等を含んでいる。データリクエストは、RDMAデバイス650に対して、周辺機器630からというよりむしろ、まるでホスト610上の「ユーザーモード」から生じたものであるように見える。
図7は、本発明の一つの実施例を利用するシステムのブロックダイヤグラムである。システム700は、サーバープラットフォームを記述しているが、例えば、以下のものに含まれてのよい。デスクトップコンピューター、ラップトップコンピューター、タブレットコンピューター、ネットブック、ノートブックコンピューター、パーソナルデジタルアシスタント(PDA)、サーバー、ワークステーション、携帯電話、モバイルコンピューター機器、インターネット機器、MP3又はメディアプレーヤー、または、あらゆる他のタイプのコンピューターデバイス、である。
システム700は、システムバス720を介して、データを交換するためのプロセッサ710、ユーザーインターフェイス760、システムメモリー730、周辺機器コントローラー740、および、ネットワークコネクター750を含んでいる。その周辺機器コントローラーは、周辺機器及びRDMAデバイスとコミュニケーション可能に接続され、上記の本発明の実施例のいずれかに従ってデバイ患者関連情報のI/Oリクエストを管理する。
システム700は、さらに、システム700の種々のエレメントによって処理されるべき信号を送信及び受信するためのアンテナとRF回路770を含んでいる。上記のアンテナは、指向性アンテナ又は無指向性アンテナであってよい。ここにおいて使用されるように、無指向性アンテナという用語は、少なくとも一平面において実質的に均一なパターンを有するあらゆるアンテナを参照するものである。例えば、いくつかの実施例において、アンテナは、ダイポール(dipole)アンテナ、または、四分の一波長(quarter wave)アンテナといった、無指向性アンテナであってよい。例えば、いくつかの実施例において、アンテナは、パラボラアンテナ、パッチアンテナ、または、八木アンテナといった、指向性アンテナであってもよい。いくつかの実施例において、システム700は、複数の物理的なアンテナを含んでよい。
ネットワークコネクター750から離れているように示されているが、他の実施例において、アンテナ及びRF回路770は、無線インターフェイスを含んでよいことが理解されるべきである。無線インターフェイスは、これらに限定されるわけではないが、IEEE802.11規格及び関連ファミリー規格、Home Plug AV(HPAV)、ウルトラワイドバンド(UWB)、Bluetooth(登録商標)、WiMax、または、無線通信プロトコルの他の形式に従って動作するものである。
ここにおいて、プロセス、サーバー、または、ツールとして説明され、上記に参照された種々のコンポーネントは、説明された機能を実行するための手段であってよい。ここにおいて説明されたそれぞれのコンポーネントは、ソフトウェア又はハードウェア、または、これらの組み合わせを含んでいる。それぞれ及び全てのコンポーネントは、ソフトウェアモジュール、ハードウェアモジュール、特定用途ハードウェア(例えば、アプリケーション所定のハードウェア、ASIC、DSP、等)、エンベッドコントローラー、ハードワイヤード回路、ハードウェアロジック、等として実施されてよい。ソフトウェアコンテンツ(例えば、データ、インストラクション、コンフィグレーション)は、固定で有形なコンピューター又はマシンで読取り可能な媒体を含む製品を介して提供されてよい。実行され得るインストラクションを表すコンテンツを提供するものである。コンテンツは、結果として、ここにおいて説明された種々の機能/動作のコンピューターによる実行を生じる。
コンピューターで読取り可能な固定記録媒体は、コンピューター(例えば、計算機器、電子システム、等)によってアクセス可能な形式で情報を提供(つまり、保管及び/又は送信)するあらゆるメカニズムを含んでいる。記録可能/記録不能媒体(例えば、読み出し専用メモリー(ROM)、ランダムアクセスメモリー(RAM)、磁気ディスク記録媒体、光記録媒体、フラッシュメモリーデバイス、等)といったものである。コンテンツは、直接的に実行可能な(「オブジェクト」又は「実行可能」形式)ソースコード、または、異なるコード(「デルタ」又は「パッチ」コード)であってよい。コンピューターで読取り可能な固定記録媒体は、また、ストレージ又はデータベースを含んでよく、そこからコンテンツをダウンロードすることができる。コンピューターで読取り可能な媒体は、また、販売時又は引き渡し時に、媒体上にコンテンツが保管されているデバイス又はプロダクトを含んでよい。従って、コンテンツが保管されたデバイスを引き渡すこと、または、コミュニケーション媒体にわたるダウンロードのためにコンテンツを提供することは、ここにおいて説明されたようなコンテンツを伴う製品を提供することとして理解されてよい。

Claims (20)

  1. リモートダイレクトメモリーアクセス(RDMA)デバイスと;
    中央処理装置(CPU)とメモリーを有する周辺機器と;
    前記RDMAデバイスと前記周辺機器に対して通信可能に接続されたホストコントローラーと、を含み、
    前記ホストコントローラーは、
    前記ホストコントローラーの中に含まれ、前記周辺機器のメモリー又は前記RDMAデバイスのメモリーのうちの一つに対してマップされた仮想アドレスにおけるアクセスリクエストメッセージに係る通知を受け取り;
    前記RDMAデバイスの前記メモリーに対してマップされた仮想アドレスにおける前記アクセスリクエストメッセージの受け取りに応じて、前記周辺機器からの前記RDMAデバイスのメモリーに対する前記アクセスリクエストメッセージに基づき、RDMAアクセスリクエストを前記RDMAデバイスに対して伝送し、前記RDMAアクセスリクエストメッセージは仮想アドレスRDMAパラメーターを含み;かつ
    前記周辺機器の前記メモリーに対してマップされた仮想アドレスにおける前記アクセスリクエストメッセージの受け取りに応じて、アクセスリクエストメッセージを前記周辺機器の前記メモリーに対して伝送する、
    ように構成されており、
    前記RDMAデバイスは、リクエストの完了後、前記周辺機器のメモリーにマップされた仮想アドレスに対して完了メッセージを送付し、前記仮想アドレスは、前記完了メッセージを保管するための完了キューを表している、
    ことを特徴とするシステム。
  2. 前記RDMAアクセスリクエストは、RDMA読み出しリクエストを有し、
    前記ホストコントローラーは、さらに;
    前記RDMAデバイスからの前記周辺機器によリクエストされたデータを受け取り、かつ、
    前記周辺機器の前記メモリーに対して、前記データを含んでいるデータメッセージを伝送する、
    請求項1に記載のシステム。
  3. 前記RDMAアクセスリクエストは、RDMA書き込みリクエストを有し、
    前記ホストコントローラーは、さらに;
    前記周辺機器のメモリーからの前記RDMAデバイスによリクエストされたデータを受け取り、かつ、
    前記RDMAデバイスに対して、前記データを含んでいるデータメッセージを伝送する、
    請求項1に記載のシステム。
  4. 前記周辺機器の前記CPUは、複数のプロセッサコアのうちの一つ、または、前記周辺機器の中に含まれているマルチコアプロセッサを有する、
    請求項1に記載のシステム。
  5. 前記周辺機器と前記RDMAデバイスは、周辺コンポーネント相互接続エクスプレス(PCIe)リンクを介して、前記ホストコントローラーに対して通信可能に接続されている、
    請求項1に記載のシステム。
  6. 前記RDMAデバイスと前記ホストコントローラーは、PCIeルートポートを介して通信可能に接続されている、
    請求項5に記載のシステム。
  7. 前記周辺機器は、グラフィックサブシステムを有し、かつ
    前記CPUは、グラフィックプロセッサユニット(GPU)を有する、
    請求項1に記載のシステム。
  8. 前記アクセスリクエストメッセージは、インフィニバンド仕様に準じている、
    請求項1に記載のシステム。
  9. 前記アクセスリクエストメッセージは、RDMAコンソーシアム仕様に準じている、
    請求項1に記載のシステム。
  10. リモートダイレクトメモリーアクセス(RDMA)デバイスのメモリーと周辺機器のメモリーのうちの一つに対してマップされた仮想アドレスにおけるアクセスリクエストメッセージに係る通知を受け取るステップであり、前記周辺機器は、さらに、中央処理装置(CPU)とメモリーを有するステップと;
    前記RDMAデバイスの前記メモリーに対してマップされた仮想アドレスにおける前記アクセスリクエストメッセージの受け取りに応じて:
    RDMAパラメーターとして前記RDMAデバイスの前記メモリーに対してマップされた前記仮想アドレスを利用するステップと;
    前記周辺機器からの前記RDMAデバイスのメモリーに対する前記アクセスリクエストメッセージに基づき、RDMAアクセスリクエストを前記RDMAデバイスに対して伝送するステップであり、前記RDMAアクセスリクエストメッセージは仮想アドレスRDMAパラメーターを含んでいるステップと;
    前記周辺機器の前記メモリーに対してマップされた仮想アドレスにおける前記アクセスリクエストメッセージの受け取りに応じて、
    アクセスリクエストメッセージを前記周辺機器の前記メモリーに対して伝送するステップと、を含み、
    前記RDMAデバイスは、リクエストの完了後、前記周辺機器のメモリーにマップされた仮想アドレスに対して完了メッセージを送付し、前記仮想アドレスは、前記完了メッセージを保管するための完了キューを表している、
    ことを特徴とする方法。
  11. 前記RDMAアクセスリクエストは、RDMA読み出しリクエストを有し、
    前記方法は、さらに;
    前記RDMAデバイスからの前記周辺機器によリクエストされたデータを受け取るステップと、
    前記周辺機器の前記メモリーに対して、前記データを含んでいるデータメッセージを伝送するステップと、を含む、
    請求項10に記載の方法。
  12. 前記RDMAアクセスリクエストは、RDMA書き込みリクエストを有し、
    前記方法は、さらに;
    前記周辺機器のメモリーからの前記RDMAデバイスによリクエストされたデータを受け取ステップと、
    前記RDMAデバイスに対して、前記データを含んでいるデータメッセージを伝送するステップと、を含む、
    請求項10に記載の方法。
  13. 前記周辺機器の前記CPUは、複数のプロセッサコアのうちの一つ、または、前記周辺機器の中に含まれているマルチコアプロセッサを有する、
    請求項10に記載の方法。
  14. 前記周辺機器と前記RDMAデバイスは、周辺コンポーネント相互接続エクスプレス(PCIe)リンクを介して、ホストコントローラーに対して通信可能に接続されている、
    請求項10に記載の方法。
  15. 前記RDMAデバイスと前記ホストコントローラーは、PCIeルートポートを介して通信可能に接続されている、
    請求項14に記載の方法。
  16. 前記周辺機器は、グラフィックサブシステムを有し、かつ
    前記CPUは、グラフィックプロセッサユニット(GPU)を有する、
    請求項10に記載の方法。
  17. リモートダイレクトメモリーアクセス(RDMA)デバイスに対して通信可能に接続された第1の相互接続リンクと;
    中央処理装置(CPU)とメモリーを有する周辺機器に対して通信可能に接続された第2の相互接続リンクと;
    ホストコントローラーと、を含み、
    前記ホストコントローラーは、
    前記ホストコントローラーの中に含まれ、前記周辺機器のメモリー又は前記RDMAデバイスのメモリーのうちの一つに対してマップされた仮想アドレスにおけるアクセスリクエストメッセージに係る通知を受け取り;
    前記RDMAデバイスの前記メモリーに対してマップされた仮想アドレスにおける前記アクセスリクエストメッセージの受け取りに応じて、前記周辺機器からの前記RDMAデバイスのメモリーに対する前記アクセスリクエストメッセージに基づき、RDMAアクセスリクエストを前記RDMAデバイスに対して伝送し、前記RDMAアクセスリクエストメッセージは仮想アドレスRDMAパラメーターを含み;かつ
    前記周辺機器の前記メモリーに対してマップされた仮想アドレスにおける前記アクセスリクエストメッセージの受け取りに応じて、アクセスリクエストメッセージを前記周辺機器の前記メモリーに対して伝送し、
    前記RDMAデバイスは、リクエストの完了後、前記周辺機器のメモリーにマップされた仮想アドレスに対して完了メッセージを送付し、前記仮想アドレスは、前記完了メッセージを保管するための完了キューを表している、
    ことを特徴とする装置。
  18. 前記RDMAアクセスリクエストは、RDMA読み出しリクエストを有し、
    前記ホストコントローラーは、さらに;
    前記RDMAデバイスからの前記周辺機器によリクエストされたデータを受け取り、かつ、
    前記周辺機器の前記メモリーに対して、前記データを含んでいるデータメッセージを伝送する、
    請求項17に記載の装置。
  19. 前記RDMAアクセスリクエストは、RDMA書き込みリクエストを有し、
    前記ホストコントローラーは、さらに;
    前記周辺機器のメモリーからの前記RDMAデバイスによリクエストされたデータを受け取り、かつ、
    前記RDMAデバイスに対して、前記データを含んでいるデータメッセージを伝送する、
    請求項17に記載の装置。
  20. 前記第1および第2の相互接続リンクのそれぞれは、周辺コンポーネント相互接続エクスプレス(PCIe)リンクを有しており、かつ、
    前記装置は、さらに、前記RDMAデバイスに対して通信可能に接続されたルートポートを含んでいる、
    請求項17に記載の装置。
JP2014533274A 2011-09-30 2011-09-30 コプロセッサのためのダイレクトi/oアクセス Active JP5869135B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/054394 WO2013048477A1 (en) 2011-09-30 2011-09-30 Direct i/o access for system co-processors

Publications (2)

Publication Number Publication Date
JP2014531685A JP2014531685A (ja) 2014-11-27
JP5869135B2 true JP5869135B2 (ja) 2016-02-24

Family

ID=47996209

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014533274A Active JP5869135B2 (ja) 2011-09-30 2011-09-30 コプロセッサのためのダイレクトi/oアクセス

Country Status (6)

Country Link
US (1) US8914556B2 (ja)
EP (1) EP2761482B1 (ja)
JP (1) JP5869135B2 (ja)
KR (1) KR101515359B1 (ja)
CN (1) CN104094244B (ja)
WO (1) WO2013048477A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9749413B2 (en) 2012-05-29 2017-08-29 Intel Corporation Peer-to-peer interrupt signaling between devices coupled via interconnects

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9558048B2 (en) * 2011-09-30 2017-01-31 Oracle International Corporation System and method for managing message queues for multinode applications in a transactional middleware machine environment
US9258365B2 (en) * 2013-03-15 2016-02-09 International Business Machines Corporation Remote direct memory access acceleration via hardware context in non-native applciations
KR101670342B1 (ko) 2013-10-29 2016-10-28 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 처리 시스템 및 데이터 처리 방법
US9548890B2 (en) 2014-03-17 2017-01-17 Cisco Technology, Inc. Flexible remote direct memory access resource configuration in a network environment
US10218645B2 (en) 2014-04-08 2019-02-26 Mellanox Technologies, Ltd. Low-latency processing in a network node
US9558148B2 (en) * 2014-04-30 2017-01-31 Intel Corporation Method to optimize network data flows within a constrained system
US9304690B2 (en) * 2014-05-07 2016-04-05 HGST Netherlands B.V. System and method for peer-to-peer PCIe storage transfers
US9582463B2 (en) * 2014-12-09 2017-02-28 Intel Corporation Heterogeneous input/output (I/O) using remote direct memory access (RDMA) and active message
CN104407985B (zh) * 2014-12-15 2018-04-03 泰斗微电子科技有限公司 存储器地址映射方法及存储器地址映射系统
US10064138B2 (en) 2014-12-23 2018-08-28 Microsoft Technology Licensing, Llc Energy efficient wireless data transfer
CN105808345B (zh) * 2014-12-31 2019-03-08 华为技术有限公司 数据处理方法、加速引擎、控制板和系统
US10469581B2 (en) * 2015-01-05 2019-11-05 International Business Machines Corporation File storage protocols header transformation in RDMA operations
KR102219759B1 (ko) 2015-01-09 2021-02-25 삼성전자주식회사 저장 장치, 그것을 포함하는 데이터 저장 시스템 및 그것의 동작 방법
WO2016122607A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Dedicated memory server
CN104598406B (zh) * 2015-02-03 2018-02-09 杭州士兰控股有限公司 扩展功能单元及计算设备扩展系统和扩展方法
US9792244B2 (en) 2015-02-13 2017-10-17 Honeywell International Inc. Multiple processor architecture with flexible external input/output interface
US9762491B2 (en) 2015-03-30 2017-09-12 Mellanox Technologies Tlv Ltd. Dynamic thresholds for congestion control
US10318459B2 (en) 2015-04-30 2019-06-11 Hewlett Packard Enterprise Development Lp Peripheral device server access
US9699095B2 (en) 2015-05-21 2017-07-04 Mellanox Technologies Tlv Ltd. Adaptive allocation of headroom in network devices
US9959245B2 (en) * 2015-06-30 2018-05-01 International Business Machines Corporation Access frequency approximation for remote direct memory access
US9954979B2 (en) * 2015-09-21 2018-04-24 International Business Machines Corporation Protocol selection for transmission control protocol/internet protocol (TCP/IP)
US10031883B2 (en) 2015-10-16 2018-07-24 International Business Machines Corporation Cache management in RDMA distributed key/value stores based on atomic operations
US10069748B2 (en) 2015-12-14 2018-09-04 Mellanox Technologies Tlv Ltd. Congestion estimation for multi-priority traffic
CN105630723A (zh) * 2015-12-22 2016-06-01 中国电子科技集团公司第三十二研究所 基于异构处理器平台的管理架构及其管理方法
US10069701B2 (en) 2016-01-13 2018-09-04 Mellanox Technologies Tlv Ltd. Flexible allocation of packet buffers
CN107145459B (zh) 2016-03-01 2021-05-18 华为技术有限公司 一种级联板、ssd远程共享访问的系统和方法
US10250530B2 (en) 2016-03-08 2019-04-02 Mellanox Technologies Tlv Ltd. Flexible buffer allocation in a network switch
US10084716B2 (en) 2016-03-20 2018-09-25 Mellanox Technologies Tlv Ltd. Flexible application of congestion control measures
US10205683B2 (en) 2016-03-28 2019-02-12 Mellanox Technologies Tlv Ltd. Optimizing buffer allocation for network flow control
US10387074B2 (en) 2016-05-23 2019-08-20 Mellanox Technologies Tlv Ltd. Efficient use of buffer space in a network switch
US9985910B2 (en) 2016-06-28 2018-05-29 Mellanox Technologies Tlv Ltd. Adaptive flow prioritization
GB2553102B (en) * 2016-08-19 2020-05-20 Advanced Risc Mach Ltd A memory unit and method of operation of a memory unit to handle operation requests
CN108363670B (zh) 2017-01-26 2020-07-14 华为技术有限公司 一种数据传输的方法、装置、设备和系统
US10389646B2 (en) 2017-02-15 2019-08-20 Mellanox Technologies Tlv Ltd. Evading congestion spreading for victim flows
US10645033B2 (en) 2017-03-27 2020-05-05 Mellanox Technologies Tlv Ltd. Buffer optimization in modular switches
JP2019016101A (ja) * 2017-07-05 2019-01-31 富士通株式会社 情報処理システム、情報処理装置、および情報処理システムの制御方法
KR102446733B1 (ko) 2017-11-30 2022-09-23 삼성전자주식회사 스토리지 장치 및 스토리지 장치를 포함하는 전자 장치
US11347678B2 (en) * 2018-08-06 2022-05-31 Oracle International Corporation One-sided reliable remote direct memory operations
US10977193B2 (en) 2018-08-17 2021-04-13 Oracle International Corporation Remote direct memory operations (RDMOs) for transactional processing systems
KR102747748B1 (ko) 2018-09-28 2024-12-27 삼성전자주식회사 메모리 디바이스들 사이의 직접 통신을 위한 메모리 시스템 및 메모리 디바이스
US11025544B2 (en) 2019-06-07 2021-06-01 Intel Corporation Network interface for data transport in heterogeneous computing environments
US11005770B2 (en) 2019-06-16 2021-05-11 Mellanox Technologies Tlv Ltd. Listing congestion notification packet generation by switch
US10999221B2 (en) 2019-07-02 2021-05-04 Mellanox Technologies Tlv Ltd. Transaction based scheduling
US20210194894A1 (en) * 2019-12-23 2021-06-24 Cisco Technology, Inc. Packet metadata capture in a software-defined network
US11470010B2 (en) 2020-02-06 2022-10-11 Mellanox Technologies, Ltd. Head-of-queue blocking for multiple lossless queues
CN112463714B (zh) * 2020-11-30 2022-12-16 成都海光集成电路设计有限公司 远程直接内存访问方法、异构计算系统及电子设备
CN112737836B (zh) * 2020-12-26 2023-01-06 苏州浪潮智能科技有限公司 PCIe外插卡的带宽分配方法、装置、设备及存储介质
US12474833B2 (en) 2021-11-02 2025-11-18 Mellanox Technologies, Ltd Queue bandwidth estimation for management of shared buffers and allowing visibility of shared buffer status
US11973696B2 (en) 2022-01-31 2024-04-30 Mellanox Technologies, Ltd. Allocation of shared reserve memory to queues in a network device
CN114866619B (zh) * 2022-04-29 2023-08-08 苏州浪潮智能科技有限公司 一种异构加速方法、装置、系统及计算机可读存储介质
US12375404B2 (en) 2022-08-25 2025-07-29 Mellanox Technologies, Ltd Flow-based congestion control

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711793B1 (en) * 2001-07-17 2010-05-04 Adaptec, Inc. No single point of failure RAID box using SATA drives
US7398300B2 (en) * 2002-08-14 2008-07-08 Broadcom Corporation One shot RDMA having a 2-bit state
US20050220128A1 (en) 2004-04-05 2005-10-06 Ammasso, Inc. System and method for work request queuing for intelligent adapter
US7702826B2 (en) 2005-12-28 2010-04-20 Intel Corporation Method and apparatus by utilizing platform support for direct memory access remapping by remote DMA (“RDMA”)-capable devices
CN101690068A (zh) * 2006-12-06 2010-03-31 弗森多系统公司(dba弗森-艾奥) 用于在多个独立主机之间共享的设备的装置、系统、以及方法
US8966195B2 (en) * 2009-06-26 2015-02-24 Hewlett-Packard Development Company, L.P. Direct memory access and super page swapping optimizations for a memory blade
US8949565B2 (en) * 2009-12-27 2015-02-03 Intel Corporation Virtual and hidden service partition and dynamic enhanced third party data store

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9749413B2 (en) 2012-05-29 2017-08-29 Intel Corporation Peer-to-peer interrupt signaling between devices coupled via interconnects

Also Published As

Publication number Publication date
JP2014531685A (ja) 2014-11-27
US8914556B2 (en) 2014-12-16
KR20140071392A (ko) 2014-06-11
EP2761482A4 (en) 2015-04-22
WO2013048477A1 (en) 2013-04-04
EP2761482B1 (en) 2016-11-30
CN104094244B (zh) 2017-05-31
EP2761482A1 (en) 2014-08-06
KR101515359B1 (ko) 2015-04-29
CN104094244A (zh) 2014-10-08
US20130275631A1 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
JP5869135B2 (ja) コプロセッサのためのダイレクトi/oアクセス
CN103763173B (zh) 数据传输方法和计算节点
US9749413B2 (en) Peer-to-peer interrupt signaling between devices coupled via interconnects
EP3033681B1 (en) Method and apparatus for delivering msi-x interrupts through non-transparent bridges to computing resources in pci-express clusters
KR101713405B1 (ko) 한정된 시스템 내에서 네트워크 데이터 흐름을 최적화하는 방법
CN112054963A (zh) 用于异构计算环境中的数据传输的网络接口
CN107077441B (zh) 用于提供使用rdma和主动消息的异构i/o的方法和装置
CN110888827A (zh) 数据传输方法、装置、设备及存储介质
CN109983741B (zh) 经由直接存储器访问设备在虚拟机之间传送分组
US20220391341A1 (en) Cross bus memory mapping
US10873630B2 (en) Server architecture having dedicated compute resources for processing infrastructure-related workloads
CN102075434B (zh) 一种虚拟集群中的通信方法
CN115664892A (zh) 虚拟监控器下Linux虚拟网卡的实现方法
US12430279B2 (en) System and method for ghost bridging
CN118606079A (zh) 一种基于socket接口的通信方法和系统
Wun et al. Network I/O acceleration in heterogeneous multicore processors
US20250245065A1 (en) Load balancing technologies
CN103747439A (zh) 无线控制器设备、无线认证处理方法、系统、组网
US20240370303A1 (en) System and method for seamless offload to data processing units
CN115549858B (zh) 数据传输方法以及装置
CN116662229A (zh) 一种数据传输方法及电子设备
US12007921B2 (en) Programmable user-defined peripheral-bus device implementation using data-plane accelerator (DPA)
US20240211392A1 (en) Buffer allocation
Pasetto et al. Design and Implementation of a Network Centric Appliance Platform

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151027

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160106

R150 Certificate of patent or registration of utility model

Ref document number: 5869135

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

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