JP2015522991A - サーバノード相互接続デバイス及びサーバノード相互接続方法 - Google Patents

サーバノード相互接続デバイス及びサーバノード相互接続方法 Download PDF

Info

Publication number
JP2015522991A
JP2015522991A JP2015512707A JP2015512707A JP2015522991A JP 2015522991 A JP2015522991 A JP 2015522991A JP 2015512707 A JP2015512707 A JP 2015512707A JP 2015512707 A JP2015512707 A JP 2015512707A JP 2015522991 A JP2015522991 A JP 2015522991A
Authority
JP
Japan
Prior art keywords
data
memory
electronic device
rendezvous
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015512707A
Other languages
English (en)
Other versions
JP6392745B2 (ja
Inventor
ハメル マーク
ハメル マーク
メイヒュー デイビッド
メイヒュー デイビッド
オズボーン マイケル
オズボーン マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2015522991A publication Critical patent/JP2015522991A/ja
Application granted granted Critical
Publication of JP6392745B2 publication Critical patent/JP6392745B2/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
    • 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/1735Network adapters, e.g. SCI, Myrinet
    • 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/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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/167Interprocessor communication using a common memory, e.g. mailbox
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

デバイスを相互接続するシステム及び方法が開示されている。スイッチファブリックは、複数の電子デバイスと通信する。ランデブーメモリは、スイッチファブリックと通信する。データは、複数の電子デバイスのうち第1の電子デバイスからランデブーメモリに転送されるが、この転送は、第1の電子デバイスのメモリからデータが出力可能な状態にあるとの判定と、ランデブーメモリに割り当てられたデータ用の位置とに応じて行われる。【選択図】図2

Description

本発明は、概して、ネットワークスイッチアーキテクチャに関し、より詳細には、スイッチファブリックを用いてサーバノードを相互接続するシステム及び方法に関する。
データセンタは、概して、ビジネス及び組織をサポートするインターネット及びイントラネットサービスを提供する、一元管理型の設備である。典型的なデータセンタは、様々なタイプの電子機器(例えば、コンピュータ、サーバ(例えば、電子メールサーバ、プロキシサーバ及びDNSサーバ)、ネットワークスイッチ、ルーター、データ記憶デバイス、及び、その他の関連する構成要素)を格納している。所与のデータセンタは、スイッチ及びルーターを含むスイッチングアーキテクチャを介して相互に及び外部デバイスと通信する数百又は数千の相互接続されたサーバノードを有することが可能である。また、従来のデータセンタは、仮想化のための構成をとることにより、サーバノードに対して、ネットワークインタフェイスカード(NIC)、ハードディスクドライブ又はその他のハードウェアの共有を可能にすることもできる。このようにする際には、通信データセンタアーキテクチャを介したノード間通信を容易にするために、複雑なスイッチファブリックが必要である。
一態様によれば、スイッチファブリックとランデブーメモリとを含む集約デバイスが提供される。スイッチファブリックは、複数の電子デバイスと通信する。ランデブーメモリは、スイッチファブリックと通信する。データは、複数の電子デバイスのうち第1の電子デバイスのメモリから前記データが出力可能な状態にあるという判定と、前記データ用のランデブーメモリに割り当てられた位置とに応じて、前記第1の電子デバイスから前記ランデブーメモリに転送される。
別の態様によれば、複数のサーバノードと、前記複数のサーバノードに接続した集約デバイスとを含むサーバ集約システムが提供される。集約デバイスは、前記複数のサーバノードのうち第1のサーバノードのローカルメモリを用いたデータ転送に関与するランデブーメモリを含む。このデータ転送は、前記第1のサーバノードのメモリからデータが出力可能であるという判定と、前記ランデブーメモリに割り当てられた前記データ用の位置とに応じて行われる。
別の態様によれば、複数の電子デバイスと集約システムとの間で通信する方法が提供される。この方法は、複数の電子デバイスのうち第2の電子デバイスに送信するデータを、複数の電子デバイスのうち第1の電子デバイスのローカルメモリに提供することと、前記第1の電子デバイスのローカルメモリからデータを受信するために、ランデブーメモリを集約システムに設けることと、伝送用のデータが前記第1の電子デバイスのローカルメモリに存在するとの集約システムによる判定と、前記第1の電子デバイスのローカルメモリから受信したデータを記憶するための位置がランデブーメモリに割り当てられたとの判定とに応じて、第1の電子デバイスのローカルメモリからランデブーメモリにデータを転送することと、を含む。
別の態様によれば、複数の電子デバイスと集約システムとの間で通信する方法が提供される。この方法は、複数の電子デバイスのうち第2の電子デバイスに送信するデータを、複数の電子デバイスのうち第1の電子デバイスのローカルメモリに提供することと、第1の電子デバイスのローカルメモリにおいてデータが伝送用に使用可能であることを、集約システムの仮想ネットワークインターフェースカード(vNIC)に通知することと、第2の電子デバイスにおける少なくとも一つの使用可能なバッファの通知を生成することと、データを受信するために前記少なくとも一つの使用可能なバッファを割り当てることと、データを、第2の電子デバイスにおける前記少なくとも一つの使用可能なバッファにvNICによって出力することと、伝送用のデータが前記第1の電子デバイスのローカルメモリに存在するとの判定と、前記第2の電子デバイスにて前記少なくとも一つの使用可能なバッファを割り当てたとの判定とに応じて、第1の電子デバイスのローカルメモリからランデブーメモリにデータを転送することと、を含む。
別の態様によれば、コンピュータ可読プログラムコードを有するコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、前記記憶媒体を用いてプログラムコードが具体化されるコンピュータプログラム製品が提供される。コンピュータ可読プログラムコードは、集約システムを介して第2の電子デバイスに送信するためのデータを、第1の電子デバイスのローカルメモリに提供するように構成されたコンピュータ可読プログラムコードと、第1の電子デバイスのローカルメモリにおいてデータが伝送用に使用可能であることを、集約システムの仮想ネットワークインターフェースカード(vNIC)に通知するように構成されたコンピュータ可読プログラムコードと、第2の電子デバイスにおける少なくとも一つの使用可能なバッファの通知を生成するように構成されたコンピュータ可読プログラムコードと、データを受信するために前記少なくとも一つの使用可能なバッファを割り当てるように構成されたコンピュータ可読プログラムコードと、第2の電子デバイスにおける少なくとも一つの使用可能なバッファに対して、vNICによってデータを出力するように構成されたコンピュータ可読プログラムコードと、伝送用のデータが前記第1の電子デバイスのローカルメモリに存在するとの判定と、前記第2の電子デバイスにて前記少なくとも一つの使用可能なバッファを割り当てたとの判定とに応じて、第1の電子デバイスのローカルメモリからランデブーメモリにデータを転送するように構成されたコンピュータ可読プログラムコードと、を含む。
本発明の上記の利点及び更なる利点は、添付の図面に関連した後述の記載を参照することによって、より良く理解し得る。これらの図面において同様に表された数字は、同様の構成要素及び特徴を示している。図面は、必ずしも縮尺が揃っていないが、本発明の原理を例示することに重点が置かれている。
従来のデータセンタネットワーク階層のブロック図である。 従来のインターコネクトファブリックスイッチに結合した複数のサーバノードを含むデータセンタのブロック図である。 一実施形態における、ランデブーメモリを有するサーバ集約システムと通信している複数のサーバノードを含む計算インフラストラクチャーのブロック図である。 一実施形態における、図3のランデブー管理装置のブロック図である。 一実施形態における、図3のネットワークプロセッサのブロック図である。 一実施形態における、サーバノードと、ランデブーメモリを有するサーバ集約システムとの間で電子通信を行う方法のフロー図である。 一実施形態における、ソースサーバノードと、ランデブーメモリを有するサーバ集約システムとの間で電子通信する方法のフロー図である。 一実施形態における、サーバ集約システムと、宛先サーバノードとの間で通信を確立する方法のフロー図である。 他の実施形態における、ランデブースイッチング用に構成されたサーバ集約システムに結合した第1及び第2のサーバノード間で通信を確立する方法のフロー図である。
以下の記載では具体的な詳細が記載されるが、本発明にかかるシステム及び方法が少なくともいくつかの詳細無しで実行できることは、当業者にとって認識し得るはずである。場合によっては、本発明が曖昧にならないように、既知の特徴又は工程は、詳細に記載されていない。
図1は、従来のデータセンタネットワーク階層10のブロック図である。図1では、複数のサーバノード12−1〜12−N(Nは、1より大きい整数)は、例えば、ラック18−1のイーサネット(登録商標)ローカルエリアネットワーク(LAN)又は関連するデータネットワークなどのLANを介して、ラックスイッチ14と通信することができる。ラック18−1は、データセンタネットワーク階層10における他の一つ以上のラック18−2,18−N(Nは、1より大きい整数)とともに、クラスタの一部として構成されてもよい。各クラスタは、集約スイッチ22−1,22−2,22−N(Nは、1より大きい整数)を含むことができ、これらは、イーサネット(登録商標)又は他のネットワーク接続を介して、コアルータ24に接続されている。ユーザコンピュータ32(例えば、ラップトップ、スマートフォン又はその他の電子デバイス)は、ネットワーク26(例えば、IPネットワーク、インターネットなど)を介して、サーバノード12−1〜12−N(概して、12)と通信することができる。データセンタスイッチに関連する規模、経費及び電力の削減を求める一方で、データセンタの拡張性の増大を求めるという、止むことのない要求が存在する。
図2は、従来のインターコネクトファブリックスイッチ120に結合した複数のサーバノード112−1〜112−N(Nは、1より大きい整数)を含むデータセンタ20のブロック図である。インターコネクトファブリックスイッチ120は、単一のシャーシのもとでの集約スイッチ及びラックスイッチの一元管理機能によって、スイッチの数を削減することができ、従来のサーバラックにおいて使用される従来のイーサネット(登録商標)スイッチングの要求の多くを置き換えることができる。
サーバノード112−1〜112−N(概して、112)は、プロセッサクラスタとして、又は、他の周知の装置として構成することができる。サーバノード112は、単一のソケットサーバ、又は、共用インフラストラクチャーを共有する低消費電力プロセッサ102を含むことができる。サーバノードプロセッサ102は、一つ以上のマイクロプロセッサ、中央演算処理装置(CPU)、画像処理装置(GPU)、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、メモリコントローラ、マルチコアプロセッサ、及び、その他のタイプのデータ処理デバイスだけでなく、これらのデバイスや他のデバイスの一部及び/又は組合せを含むことができる。
また、サーバノード112は、ローカルメモリ104と、I/Oロジック106とを含む。ローカルメモリ104は、不揮発性又は揮発性メモリ(例えば、一つ以上のチャネルのダイナミックランダムアクセスメモリ(DRAM)又はスタティックRAM(SRAM))を含むことができる。I/Oロジック106は、コンピュータのI/O機能(例えば、サーバノード112とインターコネクトファブリックスイッチ120との間のデータ転送)を管理するために、サウスブリッジ等を含むI/Oコントローラを有するように構成されてもよい。I/Oロジック106は、インターコネクトファブリックスイッチ120と電子通信を確立するために、イーサネット(登録商標)、PCIe又はその他のネットワークコネクター114を含んでいてもよい。
インターコネクトファブリックスイッチ120は、複数の入出力ポートと、可変長又は固定長のフレーム、データパケット、セル等を入出力ポート間でルーティングし得るクロスバー124とを含み、サーバノード112、例えばNIC142又はハードドライブ144等の共有デバイス、及び/又は、例えばユーザコンピュータ152等の外部電子デバイス間での通信を容易にすることができるものである。ポートは、仮想ポート、物理ポート又はこれらの組合せを含んでいてもよい。ポートは、単方向又は双方向通信用の構成であってもよい。
クロスバー124は、行と列の配列に組織化され得る。データ伝送の間には、所与の行のいくつかの入力ポートは、ある列における出力ポートを奪い合う場合がある。入力ポートは、入力バッファ126と通信することができる。入力バッファは、クロスバー124が、使用可能な出力ポートにデータを送信することができるまで、サーバノード112から受信したデータを一時的に記憶するものである。出力ポートは、出力バッファ128を含む。出力バッファは、ネットワークバス140(例えば、イーサネット(登録商標)バス、PCIeバス等)を介してパケットを宛先に送信するために、所望の出力ポートが使用可能になるまで、一つ以上の入力ポートから受信したデータを一時的に記憶する。
しかしながら、インターコネクトファブリックスイッチ120は、輻輳に関連する問題(例えば、ヘッドライン(HOL)ブロッキング)が生じやすい。この問題は、スイッチ120の複数の入力ポートが同一の出力ポートを奪い合う場合に発生するものである。また、スケーリングに関連する課題も発生するが、これは、スイッチ120でのI/Oポートの追加によって、共有のリソースを奪い合うというリスクが増加するからである。関連する課題は、サーバノード112と、インターコネクトファブリックスイッチ120との間でバンド幅を充分に使用しないことである。例えば、HOLブロッキングは、特に、入力ポートで待機しているパケット、セル等が、ファーストイン・ファーストアウト(FIFO)のキューで記憶されている場合に、クロスバー124でかなりの量のバンド幅を消費する可能性がある。また、入力及び出力バッファ126,128でのキューはすぐに満杯になり、その結果、望ましくない待ち時間、ジッター又はパケット喪失のみならず、オーバーラン及び/又はアンダーラン条件が生じ、これらは、バンド幅の不充分な使用及び性能の課題を生じる。
フロー制御技術は、容易に使用可能であり、データセンタ20でのネットワーク輻輳を緩和することができる。例えば、複雑なスケジューリング技術を適用して、クロスバー124を介したデータトラヒックを管理することができる。しかしながら、そのような技術は、概して、実現するには高価である。
他の周知である技術は、イーサネット(登録商標)をベースにした再送信を実現することである。しかしながら、イーサネット(登録商標)をベースにした再送信は、貴重なバンド幅を消費する。
他のフロー制御メカニズムを上流のデバイスに適用して、パケットの通過を停止させるように当該デバイスに要求することができる。そのような手法は、バッファオーバーフローを低減させるのに効果的であるものの、ネットワーク輻輳を完全に緩和しない。
他の手法は、一時記憶用の外部メモリデバイスと、パケットのキューイング(queuing)とに依るものである。しかしながら、この手法は、インターコネクトファブリックスイッチ120に対して、さらなるピン、及び、すぐにでも使用可能なメモリデバイスへの「配線」又はコネクターを必要とし、その結果として、拡張性の制限と、バンド幅に関連した問題とが、さらなる電力消費を求める関連要求とともに生じる。
本発明の概念は、従来のデータセンタ相互接続スイッチに付随する輻輳に関連した課題を、ランデブーデバイス(rendezvous device)を含むサーバ集約システムを導入することによって低減又は取り除くものである。ランデブーデバイスは、制御された方法で、高バンド幅スイッチファブリックを介して、複数のサーバノード又は関連する電子デバイスのローカルメモリと通信する。ランデブーデバイスは、出力可能なデータを有する伝送デバイスと、当該データの受信用に使用可能なメモリバッファを有する受信デバイスとの間で通信し、伝送デバイス及び受信デバイスの間で効率的なデータ伝送経路を提供する。例えば、データが、伝送デバイスのローカルメモリから明示的に転送され得るのは、データが出力可能であるとサーバ集約システムが判定した後であって、データ記憶用のランデブーデバイスのメモリ記憶位置に特定のメモリ記憶位置が割り当てられた後である。これらの条件が真であると判定された場合、すなわち、送信するデータを伝送デバイスが有していて、使用可能なバッファ(空きバッファ)を受信デバイスが有している場合に、伝送デバイスから受信デバイスへの効率的で待ち時間の短いデータ移動が生じる。
図2に記載された従来のネットワークスイッチ環境では、データは、クロスバースイッチキュー126,128が使用可能な空間を有しているか否かに関係なく、キュー126,128に出力される。キュー126,128が使用可能な空間を有していない場合には、データは通常破棄され、複雑でバンド幅を消費する再送信過程が実行される。
一実施形態では、サーバ集約システムは、ソースサーバノード等からのデータをいつ受信するのかを判定して、「ランデブー(rendezvous)」する位置を確立することができる。この位置は、宛先サーバノード等のメモリ記憶位置と通信して、宛先サーバノードにデータをいつ送信するのかを提供することができる。事前に割り当てられた位置は、サーバ集約システムのあらゆる入力ポートからデータを着信するために、ランデブーメモリ及び/又は宛先サーバノードメモリに提供される。これを行う場合、ソースサーバノードメモリからランデブーメモリに、又は、ランデブーメモリから宛先サーバノードメモリにデータを移動させるために、解放されているデータバッファが割り当てられる。ソースサーバノードから送信されることが意図されるデータ用のランデブーメモリにおいて使用可能な位置が存在しない場合には、ランデブーメモリに記憶位置の空きができるまで、データはランデブーメモリに転送されない。また、宛先サーバノードが、データを受信する宛先サーバノードのローカルメモリに使用可能な記憶位置があることをサーバ集約システムに通知するまで、受信データをランデブーメモリに記憶することができる。
他の実施形態では、リモートコンピュータは、外部ネットワーク上のサーバ集約システムへのデータを、外部ネットワークとサーバ集約システムとの間に結合されたNIC又は関連インターフェースに提供する。ここでは、NICは、(例えば、NICの受信リングでの記述子により識別される)ランデブーメモリの受信バッファにデータを転送する。使用可能なバッファが不十分である場合には、データは、脱落又はフィルタリングされる。そうでなければ、受信バッファは使用可能であり、データはランデブーメモリに提供され、ランデブーメモリと通信している処理複合体に通知される。次いで、メモリバッファは検査され、メモリバッファをどこにルーティングするべきか、そしてスイッチングファブリックへの処理複合体接続における記述子上のどこに置くべきかが判定される。この時点で、データは、あたかもそれがイングレスvNICにあるのと同様な方法で移動される。ここでは、ランデブーメモリ管理装置は、宛先サーバノードによって、例えばvNICを介して、宛先サーバノードメモリに空き記憶位置があるかどうか通知される。ランデブーメモリ管理装置は、受信バッファが宛先サーバノードメモリに割り当てられていない限り、宛先サーバノードメモリへの伝送用のデータをフェッチすることはしない。
従って、本発明の概念の特徴は、データ転送におけるランデブーメモリの入力及び/又は出力領域、すなわち、ソースサーバノードと通信するランデブーメモリの一端と、宛先サーバノードと通信するランデブーメモリのもう一端とで、フロー制御を生じさせることができるということである。また、スイッチファブリックにより実行されるバッファリング(buffering)は、ほとんど又は全く存在しないことから、スイッチファブリックのイングレスポートからエグレスポートへの処理待ち時間が低い。例えば、データトランザクションをスケジューリングすることにより、投機的データ移動が原因となる輻輳又はその他のトラヒックに起因するブロッキングのリスクが低減するから、待ち時間を改善することができる。
本発明の概念の他の特徴は、バンド幅を、サーバ集約システム内及びサーバノード間で効率的に分配可能なことである。これは、出力することになるデータをソースサーバノードのローカルメモリが有しているかどうか、ランデブーメモリがそのデータを受信できるかどうか、及び/又は、データのメモリ間交換を行っているサーバノードでのローカルメモリが、データを受信するのに充分な空間を有しているかどうかを、サーバ集約システムが実際のデータ転送に先立って判定することができるからである。
図3は、本実施形態における、ランデブーメモリ(R−Vメモリ)308を有するサーバ集約システム300と通信している複数のサーバノード312−1〜312−Nを含む計算インフラストラクチャー30のブロック図である。計算インフラストラクチャー30は、大規模なデータセンタ、クラウド等を含むことができる。計算インフラストラクチャーは、図2を参照して記載されるデータセンタ20と同様の仮想化した構成をとることができる。従って、仮想化関連の構成要素に関する詳細は、簡潔にするために図3では省略される。
サーバ集約システム300は、スイッチファブリック302と、ランデブー管理モジュール304と、I/Oプロセッサ306と、ランデブーメモリ308と、コントロールプレーンプロセッサ310とを含む。サーバ集約システム300は、仮想化した構成とすることができる。
サーバノード312−1〜312−N(概して、312)、又は、マイクロサーバ及び/若しくは少なくとも一つのプロセッサを有するその他の電子デバイスは、コネクター314、好ましくはPCIeバス、又は、その他のネットワークコネクターを介して、サーバ集約システム300と通信することができる。各コネクター314は、一つ以上のサーバノード312とサーバ集約システム300のと間のデータ経路を提供することができる。サーバ集約システム300及びサーバノード312は、同一のマルチプロセッシングユニット(例えばチップ、計算デバイス又はラック)に一緒に設置されてもよい。他の実施形態では、サーバノード312は、一つ以上のユニット上に形成され、サーバ集約システム300は、独立ユニット上(例えば、チップ上)に形成される。
スイッチファブリック302は、複数の入力ポート及び出力ポートを含んでおり、データ又はその他の電子情報を、その入力ポートと通信するサーバノード312と、そのエグレスポートと通信するランデブーメモリ308との間で移動させる構成とすることができる。スイッチファブリック302は、イングレスポートとエグレスポートとの間でデータを移動させるスイッチング構成(例えば、クロスバー)を含むことができ、このことは当業者には周知である。従来のスイッチファブリックとは異なり、スイッチファブリック302では、従来のキューイング技術が必要ないことから、バッファリングがほとんど又は全く必要ない。スイッチファブリック302及びランデブーメモリ308は、相互接続することができ、それらの間でのI/Oバンド幅通信チャネルを有しており、従って、ランデブーメモリ308にデータ用として割り当てられた充分な空間がある限り、いくつものサーバノード312からのデータも受信することができる。
ランデブー管理モジュール304は、コントロールプレーンプロセッサ310及びI/Oプロセッサ306とともに、サーバノード312におけるメモリ104−1〜104−N(概して、104)の一つ以上とランデブーメモリ308との間のデータパケットの明示的な転送を監視する。ランデブー管理モジュール304は、ランデブーメモリ308にバッファ空間を割り当てて、宛先サーバノード又は外部計算デバイスが、ソースサーバノードから送信されたデータをランデブーメモリ308から読み出すことができるまで、それを「駐車(parking)」させておくことができる。ランデブー管理モジュール304は、記述子等を使用して、ランデブーメモリ308から宛先メモリにデータが伝送される方法を制御することができる。ランデブー管理モジュール304は、ランデブーメモリ308の受信バッファの空きを監視し、受信バッファがポスト(post)されるまで待機する。換言すれば、ランデブー管理モジュール304は、転送操作における一方の当事者(すなわち、ソースサーバノード又はランデブーメモリ)が伝送用データを有すること、転送操作における他方の当事者(すなわち、宛先サーバ又はランデブーメモリ)がデータを受信するのに充分な空間を有していることを保証することができる。
ランデブーメモリ308は、複数のネットワークスイッチのリンクと通信する場合には、バンド幅が充分に高い(例えば、10Gb以上)貫通ビアシリコン(TSV)、SRAM又はオンダイ(on−die)メモリを含むことができる。ランデブーメモリ308は、例えば、メモリのブロックに組織化された解放された複数のデータバッファを含むように構成され得るものであって、これらのデータバッファは、データをローカルメモリ104からランデブーメモリ308に移動させる場合に、一つ以上のvNIC334に割り当てられ得る。
I/Oプロセッサ306は、ランデブーメモリ308と、一つ以上の電子デバイス(例えば、サーバノード312及び/又はリモート計算デバイス352)との間で転送されたデータを処理する。I/Oプロセッサ306は、マルチプレクサ、並びに、ランデブーメモリ308へのデータ転送及びランデブーメモリ308からのデータ転送を実行するその他のロジックを含むことができるが、転送の実行は、ランデブー管理モジュール304、コントロールプレーンプロセッサ310又はそれらの組合せを用いて形成された通信に従ってなされる。このように、I/Oプロセッサ306は、サーバ集約システム300へ及びサーバ集約システム300から(例えば、二つ以上のサーバノード312の間、又はサーバノード312と外部計算デバイス352との間)データを移動させる集結地(staging area)としての役割を果たすことができる。
I/Oプロセッサ306は、使用可能なバッファを示す受信記述子をポストすることによって、ソースサーバノード312からの伝送可能状態にあると判定された特定のデータが一時的に(例えば、宛先サーバノード312がデータを読み出すまで)記憶されることになるランデブーメモリ308におけるバッファを識別することができる。I/Oプロセッサ306は、ランデブーメモリ308からバッファ記述子を処理するvNIC334へのデータ移動のために、例えばランデブーメモリ308の一つ以上のチャネル用のバッファ記述子を保持することができる。I/Oプロセッサ306は、受信バッファのリソースを受信記述子に追加する。
コントロールプレーンプロセッサ310は、ネットワークルーティングプロトコルを処理することによって、サーバノード312とサーバ集約システム300との間のデータ送信用のスイッチングコントロールプレーン(図示省略)を管理し、サーバ集約システム300等で受信されるデータパケット、フレーム、セル等の転送に関与する。コントロールプレーンプロセッサ310の他の機能は、データレディ(data ready)通知、受信バッファの空き通知、バッファ解放等の生成を含む。コントロールプレーンプロセッサ310は、サーバ集約システム300内のブロック、ポート及びノードの間の通信を提供することができ、ポート間のデータ移動のためにスイッチファブリック302と通信する。コントロールプレーンプロセッサ310は、ランデブーメモリ308及び/又は一つ以上のサーバノードメモリ104への書き込み及び/又は読み出しを行うことができる。コントロールプレーンは、使用可能な受信バッファの数を問い合わせるためのデータ可用メッセージ(例えば、送信可能メッセージ)及びバッファ解放メッセージを送信するように構成され得る。
コントロールプレーンプロセッサ310は、ゼロ又は一つ以上のvNIC334を、好ましくはダイレクトメモリアクセス(DMA)エージェント(agent)(図示省略)、又は、スイッチファブリック302における関連するエージェントと組み合わせて実現及び管理することができる。様々なタイプの通信が、コントロールプレーンプロセッサ310の管理下で、コントロールプレーン上で行われてもよい。例えば、このような通信は、サーバノードインターフェースドライバーから書き込まれ、バッファ記述子メモリ記憶位置の状態の変化を指示する伝送/受信記述子のドアベル(door bell)通知であってもよい。他の例では、コントロールプレーンは、伝送を終えたバッファを、さらなる伝送のために又は受信バッファとして再利用させるなどのバッファ解放メッセージを管理することができる。コントロールプレーンの他の機能は、データレディ通知の提供、バッファ空き通知の受信、及び、バッファ解放等を含むことができる。
図4は、一実施形態における、図3のランデブー管理モジュール304のブロック図である。ランデブー管理モジュール304は、メモリ割り当てモジュール402、通知モジュール404、データ配信モジュール406、割り込み生成モジュール408及び/又はタイマ410を含むことができる。ランデブー管理モジュール304は、同一デバイス(例えば、チップ、ラック等)の一部として示されている。代替として、ランデブー管理モジュール304のいくつかの構成要素は、図3に示された計算インフラストラクチャー30内の別の位置に物理的に配置することができる。
メモリ割り当てモジュール402は、ソースサーバノード312−1からデータをフェッチするときにvNIC334が使用するバッファ空間を、ランデブーメモリ308内に割り当てる。より詳細には、メモリ割り当てモジュール402は、ランデブーメモリ308のブロックを示すインデックスを提供することができる。このインデックスは、ランデブーメモリの空きデータバッファブロックを示すバッファ記述子を含む。
通知モジュール404は、ランデブーメモリ308にデータが入力された場合に、バッファ割り当てに関連した通知を生成する。例えば、通知モジュール404は、バッファを要求するvNIC334に応答して、受信バッファ割り当てをvNIC334に通知することができる。通知モジュール404は、サーバノード312からの伝送用にデータが使用可能であることを示す通知を、例えばvNIC334から受信することができる。通知モジュール404は、ランデブーメモリ308から宛先デバイス用のvNIC334への記述子及び/又はデータをフェッチした後に新規データが使用可能であることを、vNIC334に通知することができる。
データ配信モジュール406は、割り当て用のランデブーメモリ308からvNIC334への記述子、データ等をフェッチすることができる。このvNIC334は、次いで、データを宛先ローカルメモリに提供する。
割り込み生成モジュール408は、新規データがランデブーメモリ308にある場合に、割り込み信号をI/Oプロセッサ306に出力する。これにより、I/Oプロセッサ306は、データをランデブーメモリからプル(pull)し、当該データを提供する。また、割り込み生成モジュール408は、伝送記述子の解放後(例えば、ランデブーメモリ308から宛先ローカルメモリ104−Nにデータを移動させた後)に、割り込み信号をネットワークプロセッサに出力することができる。
タイマ410は、受信バッファが、ランデブーメモリ308にてvNIC334への割り当て用に使用可能でない(空きがない)場合に起動し得る。タイマ410は、データをランデブーメモリ308に転送することが不可能であることをサーバ集約システム300の構成要素に示し、これにより、フロー制御のレベルを提供する。
図5は、一実施形態における、図3のI/Oプロセッサ306のブロック図である。I/Oプロセッサ306は、プロセッサ502、記述子処理モジュール504及び/又はスケジューラ508を含む。I/Oプロセッサは、メモリ(図示省略)を含んでもよい。I/Oプロセッサ306は、同一のデバイス(例えばチップ、ラック等)の一部として示されているが、I/Oプロセッサ306の構成要素のいくつか又はすべては、図3に示された計算インフラストラクチャー30の他の構成要素にあってもよい。
プロセッサ502は、データ出力に関連する構成要素(例えば、NIC342)とのインターフェースをとるのに使用されるプログラムのプログラムコードを実行することが可能である。プロセッサ502は、ルーティングの決定を行い、受信バッファを、受信記述子リングから宛先伝送記述子リングに移動させることができる。
記述子処理モジュール504は、ソースサーバノード312−1からデータを受信するランデブーメモリ308の空き記憶位置を示す受信記述子を、生成及び/又はポストすることができる。受信記述子は、ランデブーメモリ308において、バッファが常駐する位置、バッファのサイズ、複数のセグメント等を示することができる。I/Oプロセッサ306は、現在解放されている(データを受信するのに空いている)データバッファの記述子を、ランデブーメモリ308からI/Oプロセッサ306へ受け渡すことによって、ランデブーメモリ308内の使用可能なデータバッファに関する情報を受信することができる。また、記述子処理モジュール504は、ランデブーメモリ308から宛先サーバノード312−Nのローカルメモリ104−Nにデータを転送する命令、分散収集リスト等を含む伝送記述子を生成することができる。
スケジューラ508は、例えば、NIC342若しくはPCIeコネクター314を介してサーバ集約システム300が新規データを受信するとの通知、又は、宛先デバイスへの伝送用としてランデブーメモリ308内で新規データが使用可能であるとの通知を受信した場合に、起動する。スケジューラ508は、ランデブーメモリと、一つ以上のサーバノード312及び/又は遠隔計算デバイス352との間のデータの転送を、例えばラウンドロビンの順、ファーストインファーストアウトの順又は本発明の技術分野で周知の他の順で調整することができる。スケジューラは、所定の方針に従ってデータを転送するように調整することができる。例えば、方針は、フロー又はポートを優先度付きでタグ付けするメカニズムを含むことができる。I/Oプロセッサ306は、あるレベルのパケット検査及び分類を実行してフローを差別化することができる。厳格な優先度スケジューラ508を実現することができる。代替方法として、スケジューラ508は、最小バンド幅割り当てを有する異なるフローを提供することができる。スケジューラ508は、サーバ集約システム300のvNICを管理することにより、ある宛先用のデータを選択することができる。
図6は、一実施形態における、サーバノードと、ランデブーメモリを有するサーバ集約システムとの間で電子通信を行う方法600のフロー図である。方法600は、図3の一つ以上のサーバノード312のメモリ104及び/又はサーバ集約システム300に記憶された命令に従うことができる。従って、図2〜5が参照される。方法600のいくつか又はすべてを、ASIC、システムオンチップ(SOC)又は関連するデバイスにて、オンダイで実行することができる。
ブロック602では、ソースサーバノード312−1は、セル、パケット、フレーム又は他のローカルメモリ104−1内のデータのユニットが、宛先(例えば、他のサーバノード312−N又は外部計算デバイス352)へのNIC342を介した出力に使用可能であると告知する。ソースサーバノード312−1は、伝送用のデータがメモリ104−1内にあって伝送用に使用可能であることを、vNIC334に通知することができる。サーバノード312は、データを処理するためにメモリ104−1内で定義されているリングバッファ等を維持して、データ伝送又は受信処理を実行することができる。
ひし型の判断部604では、ランデブーメモリ308が、ソースサーバノード312−1のメモリ104−1内の伝送用データを受信することができるかどうかの判定が行われる。この判定は、ランデブー管理モジュール304によって行うことができる。ランデブー管理モジュール304は、ソースサーバノード312−1から直接的にデータを伝送することができるバッファ空間が、ランデブーメモリ308内に空いている(使用可能である)かどうかを確立することができる。ランデブーメモリ308がデータを受信することができない場合には、次にブロック608において、ランデブー管理モジュール304は、受信バッファがポストされるまで待機し得る。一方、ランデブーメモリ308がデータを受信することができる場合には、ブロック606にて、データ、記述子等を、ソースサーバノード312−1のメモリ104−1からランデブーメモリ308に転送することができる。
ひし形の判断部610では、I/Oプロセッサ306は、ソースサーバノード312−1からランデブーメモリ308に転送されるデータが、宛先サーバノード(例えば、サーバノード312−N)に転送されることになるかどうかを判定する。この判定は、宛先アドレスに基づいて行われてもよいし、伝送記述子又は宛先ポートを識別するパケットに関するメタ情報をプリペンド(prepend)することによって行われてもよい。データを宛先サーバノードに転送しないという判定結果であれば、次にブロック612において、I/Oプロセッサ306がデータを消費することができ、例えば、データは/プロセッサ306において終了する。代替方法として、I/Oプロセッサ306は、データを、データ内容に応じて(例えば、宛先アドレスに基づいて)NIC342に転送する。例えば、データパケットは、スイッチファブリック302を介してフロー管理に関連付けられることが可能であり、I/Oプロセッサ306の構成要素、データのルーティングを制御する処理複合体と相互作用する。そうでなければ、ひし型の判断部614では、宛先サーバノード312−Nが、ランデブーメモリ308から伝送可能な状態のデータを受信するローカルメモリ104−Nに空き空間を有しているかどうかという判定がなされる。この判定は、コントロールプレーンプロセッサ310が行うことができ、この場合には、仮想NIC334が、宛先ローカルメモリ104−Nにおいてバッファ空間が空いているかどうかを確定することができる。判断部614にて「いいえ」の場合には、ブロック616において、ランデブー管理モジュール304は、宛先サーバノードCPU102によって受信バッファがポストされるまで、宛先ローカルメモリ104−Nへのデータ送信を待機することができる。判断部614にて「はい」の場合には、ブロック618において、ランデブーメモリ308にてデータが転送用として使用可能であって、且つ、ランデブーメモリ308用に受信バッファが割り当てられた、との判定がなされた場合に、ランデブーメモリ308から宛先サーバノードメモリ104−Nにデータを転送することができる。
図7は、一実施形態における、サーバノードと、ランデブーメモリを有するサーバ集約システムとの間で電子通信を行う方法700のフロー図である。方法700は、図3の一つ以上のサーバノード312のメモリ104及び/又はサーバ集約システム300に記憶された命令に従うことができる。従って、図2〜5が参照される。方法700のいくつか又はすべては、ASIC、システムオンチップ(SOC)又は関連する集積回路にて、オンダイで実行することができる。
先ず、サーバノード312−1は、セル、パケット、フレーム又は他のデータのユニットがローカルメモリ104−1にあって、宛先(例えば、他のサーバノード312−N)又はNIC342を介してリモート計算デバイス352に出力されるかどうかの判定を行う。ローカルメモリ104−1は、データを処理するためのキュー、リングバッファ、リンクされたリスト等を含む。
ブロック702では、サーバノード312−1のCPU102は、サーバノード312−1から出力されるローカルメモリ104−1内のデータに関する記述子又は関連情報を生成することができる。記述子は、ランデブーメモリ308に転送されるデータに関連したコマンド、分散収集リスト等を含むことができる。関連する記述子情報は、データが常駐するメモリ104−1における記憶位置、データが伝送される宛先アドレス、移動させるデータのバイト数、及び/又は、CPU102と他のサーバ集約システム300におけるvNIC334との間で通信を確立するための関連情報を識別することができる。
ブロック704では、第1のサーバノード312−1のCPU102は、新規記述子がメモリ104−1にあって伝送に使用可能であるということを、vNIC334に通知する。CPU102は、メールボックス書き込み又は関連イベントの通知を、通信経路314を介してvNIC334に送信することによって、伝送用データの使用可能性をvNIC334に通知することができる。
ブロック706では、I/Oプロセッサ306は、ランデブーメモリ308内の使用可能なデータバッファ(空きデータバッファ)を示す受信記述子をポストする。受信記述子は、バッファのアドレス、長さ又は関連情報を含むことができる。
ブロック708では、I/Oプロセッサ306は、vNIC334用の一つ以上のランデブーメモリバッファの使用可能性(空き状況)を、ランデブー管理モジュール304に通知する。
ブロック710では、コントロールプレーンプロセッサ310は、ランデブーメモリ308の一つ以上のバッファ記憶位置にvNIC334用の空きを要求するように、ランデブー管理モジュール304にメッセージを送信する。
ブロック712では、ランデブー管理モジュール304は、ランデブーメモリ308に対して、vNIC334用の一つ以上の受信バッファを割り当てて、vNIC334が、サーバノードメモリ104−1からランデブーメモリ308にvNIC334がデータを転送、コピー又は移動させることができるようにする。ランデブー管理モジュール304は、バッファ割り当てに関する通知をコントロールプレーンプロセッサ310に送信する。現在空いている受信バッファがない場合には、ランデブー管理モジュール304は、受信バッファが空くまで待機することができる。記述子及び/又はデータは、この待ちの期間にフェッチされない。一実施形態では、入力記述子は、待ち時間を削減するためにプリフェッチ(prefetch)され得る。これは、入力記述子が、転送待ち時間を削減するために多くのメモリ資源を消費するということがないためである。
ブロック714では、vNIC334は、データをフェッチするのに使用されるサーバノードメモリ104−1から伝送記述子をフェッチする。vNIC334は、一つ以上の記述子をフェッチする、又は、フェッチするための一連の記述子に従うことができる。vNIC334は、サーバノードメモリ104−1からの記述子情報(例えば、アドレス)に従ってデータをフェッチし、データを、スイッチファブリック302を介して、ランデブー管理モジュール304によって割り当てられた空き(使用可能な)ランデブーメモリ308に移動させる。例えば、コントロールプレーンプロセッサ310は、PCIeコネクター314を介してメモリ104−1に読み出しを発令し、データをフェッチしてランデブーメモリ308に移動させることができる。
ブロック716では、コントロールプレーンプロセッサ310は、ランデブー管理モジュール304に対して、フェッチされたデータがランデブーメモリ308において使用可能であるとの通知を送信することができる。ランデブー管理モジュール304は、I/Oプロセッサ306に伝送される割り込みを生成することができる。これにより、I/Oプロセッサ306は、データをランデブーメモリ308からプル(pull)し、当該データを提供することができる。
ブロック718では、I/Oプロセッサ306は、ランデブーメモリ308内のデータを処理して、例えば、データを消費するかどうか、NIC342に当該データを転送するかどうか、又は、計算インフラストラクチャー30の一部である他のサーバノード312のCPU102に当該データを転送するかどうかを判定することができる。
示されてはいないが、コントロールプレーンプロセッサ310は、サーバノード312−1で生成された伝送記述子を解放することができる。コントロールプレーンプロセッサ310は、任意に、サーバノードCPU102に割り込むことができる。I/Oプロセッサ306は、例えば、スケジューラ508に従って、ランデブーメモリ308内のデータの送信を制御することができる。このように、I/Oプロセッサ306は、その宛先(例えば、宛先サーバノード312−N)へのデータの送信を保証することができ、これは図8に記載されるとおりである。
図8は、一実施形態における、ランデブースイッチングを行う構成のサーバ集約システムに結合した第1及び第2のサーバノード間で通信を確立する方法800のフロー図である。方法800は、サーバ集約システムのネットワークプロセッサによる図7のブロック718での判定に応じて実行することができる。ネットワークプロセッサは、ランデブーメモリ308内の使用可能なフェッチされたデータを、他のサーバノード、又は、CPUを有する関連する電子デバイス(例えば、図3に示されたサーバノード312−N)に転送する。方法800は、図3のサーバノード312のメモリ104及び/又はサーバ集約システム300に記憶された命令により制御することができる。この場合には、図2〜5及び図7が参照される。
ブロック802では、I/Oプロセッサ306の記述子処理モジュール504は、図7に記載される方法700に従ってランデブーメモリ308に移動されるデータに関する記述子又は関連する情報を提供することができる。記述子は、宛先サーバノード312−Nのローカルメモリ104−Nにデータを転送する命令、分散収集リスト等を含むことができる。関連する記述子情報は、データが常駐するメモリ104−1における記憶位置、データが伝送される宛先アドレス、移動させるデータのバイト数、及び/又は、I/Oプロセッサ306と、ローカルメモリ104−Nへのデータの転送に関与するvNIC334との間で通信を確立する他の関連情報を識別することができる。
ブロック804では、I/Oプロセッサ306は、ランデブーメモリ308内のデータが伝送用に使用可能であることを、ランデブー管理モジュール304に通知する。
ブロック806では、宛先サーバノード312−NのCPU102は、宛先サーバノード312−Nのメモリ104−N内の使用可能なデータバッファ(空きデータバッファ)を示す受信記述子をポストする。受信記述子は、バッファのアドレス、長さ又は関連情報を含むことができる。
ブロック808では、宛先サーバノード312−NのCPU102は、コントロールプレーンプロセッサ310に対して、メモリ104−Nにおけるランデブー管理モジュール304用の一つ以上のホストメモリバッファの使用可能性(空き状況)を通知する。
ブロック810では、宛先サーバノード312−N内のCPU102は、コントロールプレーンプロセッサ310に要求を送信して、宛先ノードメモリ104−Nにおける一つ以上のバッファ記憶位置を空きにするようにランデブー管理モジュール304に要求する。
ブロック812では、コントロールプレーンプロセッサ310は、ランデブー管理モジュール304用に宛先ノードメモリ104−Nの受信バッファを割り当てて、ランデブー管理モジュール304が、ランデブーメモリ308から宛先ノードメモリ104−Nへのデータの転送、コピー等を行えるようにする。コントロールプレーンプロセッサ310は、バッファ割り当てに関する通知を、ランデブー管理モジュール304に送信することができる。現在空いている受信バッファがない場合には、ランデブー管理モジュール304は、宛先サーバノードメモリ104−Nの受信バッファが空くまで待機することができる。一実施形態では、記述子及び/又はデータは、待ち期間の間フェッチされない。
ブロック814では、ランデブー管理モジュール304は、ランデブーメモリ308からのデータをフェッチするのに使用される伝送記述子をフェッチする。ランデブー管理モジュール304は、ランデブーメモリ308からの記述子情報(例えば、アドレス)に従ってデータをフェッチし、データを、スイッチファブリック302を介して、vnic634に移動させる。ランデブー管理モジュール304は、コントロールプレーンプロセッサ310に対して、宛先サーバノード312−N用のランデブーメモリ308からvNIC334への記述子及び/又はデータをフェッチした後に新規データが使用可能であることを、通知することができる。
ブロック816では、vNIC/CPは、受信バッファ用の記述子をフェッチ及び処理し、データを宛先サーバノードメモリ104−Nに移動させる。コントロールプレーンプロセッサ310は、メモリ104−Nに移動したデータを提供するために、宛先サーバノード312−NのCPU102に出力される割り込みを生成することができる。ランデブー管理モジュール304は、伝送記述子を解放することができ、サーバノードI/Oプロセッサ306に任意に割り込みすることができる。
本明細書に記載の方法の実施形態により、データが宛先に送信できる状態にあるとサーバ集約システム300が判定した場合には、要求に応じてデータを転送することができる。ランデブーメモリ308がデータを受信できる状態にない場合には、データは宛先に伝送されない。これは、仮に、データがソースサーバノード312−1において転送できる状態にあってもそうである。同様に、宛先サーバノード312−Nがデータを受信できる状態にない場合には、データは、ランデブーメモリ308から伝送されない。このように、従来のキューイング技術を必要とすることなく、バッファ空間がないことに起因してデータが失われるということはない。むしろ、データの移動は記述子の使用可能性と結びついている。記述子が確立される場合には、サーバ集約システム300は、移動させることになるデータが存在するとの判定を行うことができる。
図9は、一実施形態における、ランデブースイッチングを行う構成のサーバ集約システムに結合した第1及び第2のサーバノード間で電子通信する方法900のフロー図である。方法900は、一つ以上のサーバノード312のメモリ104及び/又は上記のサーバ集約システム300に記憶された命令により制御することができる。方法900の一つ以上の構成要素は、上述したものと同様であってもよい。図2〜5が参照されるが、方法900は、ランデブーメモリ308無しに実行される。特に、ランデブー管理モジュール304及びコントロールプレーンプロセッサ310は、方法900に関与することができ、この方法では、データ転送が、二つのサーバノード212−1,212−Nの間で、ランデブーメモリ308の介在無しに行われる。
ブロック902では、記述子は、第1のサーバノード312−1で生成される。
ブロック904では、vNIC334は、データが伝送用に使用可能であることを通知される。
ブロック906では、受信記述子は、第2のサーバノード312−Nの使用可能なバッファ(空きバッファ)でポストされる。
ブロック908では、宛先サーバノード312−Nは、コントロールプレーンプロセッサ310に対して、ランデブー管理モジュール304用のメモリ104−Nの一つ以上のホストメモリバッファの使用可能性(空き状況)を通知する。
ブロック910では、宛先メモリ104−Nのバッファの要求がなされる。
ブロック912では、受信バッファが割り当てられる。バッファは、vNIC334用に割り当てることができ、これにより、コントロールプレーンプロセッサ310のvNIC334が、サーバノードメモリ104−1から宛先ノードメモリ104−Nにデータを転送、コピー又は移動させることができる。
ブロック914では、vNIC334は、受信バッファ用の記述子をフェッチ及び処理して、データを宛先サーバノードメモリ104−Nに移動させる。
当業者が認識し得るように、本発明の態様は、システム、方法又はコンピュータプログラム製造物として具体化されてもよい。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又は、ソフトウェア及びハードウェアの態様を組み合わせた実施形態であって、本明細書では「回路」、「モジュール」又は「システム」と称される形態であってもよい。さらには、本発明の態様は、コンピュータプログラム製品の形態であって、一つ以上のコンピュータ可読媒体で具体化されてもよい。コンピュータ可読媒体は、コンピュータ可読プログラムコードを有していてもよい。
一つ以上のコンピュータ可読媒体のあらゆる組合せが利用できる。コンピュータ可読媒体は、コンピュータ可読信号媒体、又は、コンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、例えば、電気的、磁気的、光学的、電磁気的、赤外線であってもよく、半導体システム、装置若しくはデバイスであってもよく、これらのあらゆる好適な組合せであってよいが、これらに限定されるものではない。コンピュータで可読記憶媒体のさらに特定の例(非包括的な列挙)は、以下のものを含む。すなわち、一つ以上の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、イレーザブルプログラマブルリードオンリーメモリ(EPROM若しくはフラッシュメモリ)、光ファイバー、ポータブルコンパクトディスクリードオンリーメモリ(CD−ROM)、光記憶デバイス、磁気記憶デバイス、又は、これらのあらゆる好適な組合せである。本文献の文脈においては、コンピュータ可読記憶媒体は、あらゆる有形の媒体であって、命令実行システム、装置若しくはデバイスにより使用されるプログラム、又は、これらに接続して使用するプログラムを含む又は記憶するものであってもよい。
コンピュータ可読信号媒体は、その内部で具体化されるコンピュータ可読プログラムコード(例えば、ベースバンド又は搬送波の一部として伝搬されるデータ信号)を含んでいてもよい。このような伝搬信号は、あらゆる多様な形態(例えば、電磁的、光学的又はこれらのあらゆる好適な組合せの形態)をとってもよいが、これらには限定されない。コンピュータ可読信号媒体は、コンピュータで読み取り可能なあらゆる媒体であって、コンピュータ可読記憶媒体ではなく、命令実行システム、装置若しくはデバイスによって使用されるプログラム、又は、これらと接続して使用するプログラムを、通信、伝搬又は移動することが可能な媒体であってもよい。コンピュータ可読媒体上で具体化されるプログラムコードは、あらゆる適切な媒体、例えば、限定はされないが、無線、有線、光ファイバーケーブル、RF等又は前述のあらゆる好適な組合せを用いて伝送することができる。
本発明の態様の動作を実行するコンピュータプログラムコードは、Java(登録商標)、Smalltalk、C++等のオブジェクト指向プログラミング言語及び「C」プログラミング言語等の従来の手続型言語、又は、同様のプログラミング言語を含む一つ以上のプログラミング言語のあらゆる組合せで記述されていてもよい。プログラムコードは、全部がユーザのコンピュータ上で実行されてもよいし、一部がユーザのコンピュータ上で実行されてもよい。また、プログラムコードは、スタンドアロンのソフトウェアパッケージとして、一部がユーザのコンピュータ上又はリモートコンピュータ上で実行されてもよいし、全部がリモートコンピュータ上又はサーバ上で実行されてもよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含むあらゆるタイプのネットワークを介してユーザのコンピュータに接続されていてもよいし、(例えば、インターネットサービスプロバイダを用いたインターネットを介して)外部のコンピュータと接続されていてもよい。
本発明の態様は、本発明の実施形態の方法、装置(システム)及びコンピュータプログラム製品のフローチャート並びに/又はブロック図を参照しつつ記載されている。フローチャート図及び/又はブロック図の各ブロックと、フローチャート図及び/又はブロック図におけるブロックの組合せとは、コンピュータプログラムの命令により実現可能であることは理解されるであろう。コンピュータプログラムのこれらの命令は、汎用コンピュータ、専用コンピュータ、又は、機械を製造する他のプログラマブルデータ処理装置のプロセッサに提供され、これらのコンピュータ又は他のプログラマブルデータ処理装置のプロセッサにおいて実行され、フローチャート及び/又はブロック図のブロックにおいて特定された機能/作用を実現する手段を生成するようにしてもよい。
また、コンピュータプログラムのこれらの命令は、コンピュータ可読媒体に記憶されてもよく、この媒体が、コンピュータ、他のプログラマブルデータ処理装置、又は、特定の方法で機能する他のデバイスに命令して、コンピュータ可読媒体に記憶された命令によって製品が製造され、その製品に、フローチャート及び/又はブロック図のブロックにおいて特定された機能/作用を実現する命令が含まれるようにしてもよい。さらに、コンピュータプログラムの命令は、コンピュータ、他のプログラマブルデータ処理装置、又は、他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、又は、他のデバイス上で一連の処理ステップを実行させ、コンピュータで実現されるプロセスを生成させ、コンピュータ又は他のプログラマブル装置上で実行されるこれらの命令が、フローチャート及び/又はブロック図のブロックにおいて特定される機能/作用を実現するプロセスを提供するようにしてもよい。
図におけるフローチャート及びブロック図は、本発明の様々な実施形態によるシステム、方法及びコンピュータプログラム製品の実施可能なアーキテクチャ、機能性及び動作を例示する。この点で、フローチャート又はブロック図における各ブロックは、モジュール、セグメント又はコードの一部を表してもよく、これらは、特定された論理機能を実現する一つ以上の実行可能な命令を含む。いくつかの代替の実施物では、ブロックで指摘される機能は、図において指摘される順序に従うことなく生じてもよいことも留意されたい。例えば、連続して示された二つのブロックは、実際には、実質的に同時に実行されてもよいし、ブロックは、場合によっては逆順に実行されてもよく、これは関係する機能による。ブロック図及び/又はフローチャートの各ブロックと、ブロック図及び/又はフローチャートにおけるブロックの組合せとは、専用のハードウェア及びコンピュータ命令の特定された機能若しくは作用又は組合せを実行する、専用のハードウェアをベースにしたシステムによって実現されてもよいことも留意されるであろう。
特定の実施形態を参照して、本発明を示し記載してきたが、形態及び詳細の様々な変更が、本発明の精神及び範囲を逸脱することなく、当業者により行われてもよいことは理解されるべきである。

Claims (26)

  1. 複数の電子デバイスと通信するスイッチファブリックと、
    前記スイッチファブリックと通信するランデブーメモリとを備え、
    前記複数の電子デバイスのうち第1の電子デバイスのメモリからデータが出力可能な状態にあるとの判定に応じて、且つ、前記ランデブーメモリに割り当てられた前記データ用の位置に応じて、前記データが前記第1の電子デバイスから前記ランデブーメモリに転送される、
    集約デバイス。
  2. 前記第1の電子デバイスは、前記スイッチファブリックに接続したサーバノードである、請求項1に記載の集約デバイス。
  3. 前記第1の電子デバイスは、前記集約デバイスと通信するリモートコンピュータである、請求項1に記載の集約デバイス。
  4. 前記データは、前記ランデブーメモリから前記複数の電子デバイスのうち第2の電子デバイスに前記データが出力可能な状態にあるとの判定に応じて、且つ、前記第2の電子デバイスのメモリに割り当てられた前記データ用の位置に応じて、前記ランデブーメモリから前記第2の電子デバイスに転送される、請求項1に記載の集約デバイス。
  5. 前記宛先電子デバイスは、前記複数のサーバノードのうち第2のサーバノード、又は、前記集約デバイスと通信するリモートコンピュータである、請求項4に記載の集約デバイス。
  6. 前記データが第2の電子デバイスに提供可能になるまでに、前記ランデブーメモリにおいて前記データ用の位置を割り当てるランデブー管理モジュールをさらに含む、請求項1に記載の集約デバイス。
  7. 出力可能な状態の前記データが受信される位置であって、前記ランデブーメモリに割り当てられた位置を識別する入出力(I/O)プロセッサをさらに含む、請求項1に記載の集約デバイス。
  8. 前記複数の電子デバイスの間でデータを送信するスイッチングコントロールプレーンを管理するコントロールプレーンプロセッサをさらに含む、請求項1に記載の集約デバイス。
  9. 前記メモリはTSVメモリを含む、請求項1に記載の集約デバイス。
  10. 前記メモリはオンダイメモリを含む、請求項1に記載の集約デバイス。
  11. 複数のサーバノードと、
    前記複数のサーバノードに接続した集約デバイスとを備え、
    前記集約デバイスは、
    前記複数のサーバノードのうち第1のサーバノードのメモリからデータが出力可能な状態にあるとの判定と、前記ランデブーメモリに割り当てられた前記データ用の位置とに応じた、前記第1のサーバノードのローカルメモリを用いたデータの転送に関与するランデブーメモリを含む、サーバ集約システム。
  12. 前記データは、前記ランデブーメモリから宛先電子デバイスに前記データが出力可能な状態にあるとの判定と、前記宛先電子デバイスに割り当てられた、前記データを受信するための位置とに応じて、前記ランデブーメモリから前記宛先電子デバイスに転送される、請求項11に記載のサーバ集約システム。
  13. 前記宛先電子デバイスは、前記複数のサーバノードのうち第2のサーバノード、又は、前記集約デバイスと通信するリモートコンピュータである、請求項12に記載のサーバ集約システム。
  14. 前記データが第2の電子デバイスに提供可能になるまでに、前記ランデブーメモリにおいて前記データ用の位置を割り当てるランデブー管理モジュールをさらに含む、請求項11に記載のサーバ集約システム。
  15. 出力可能な状態の前記データが受信される位置であって、前記ランデブーメモリに割り当てられた位置を識別する入出力(I/O)プロセッサをさらに含む、請求項11に記載のサーバ集約システム。
  16. 前記第1のサーバノードの前記ローカルメモリと前記ランデブーメモリとの間で前記データの転送を確立するコントロールプレーンプロセッサをさらに含む、請求項11に記載のサーバ集約システム。
  17. 複数の電子デバイスと集約システムとの間で通信する方法であって、
    前記複数の電子デバイスのうち第2の電子デバイスに送信するデータを、前記複数の電子デバイスのうち第1の電子デバイスのローカルメモリに提供することと、
    前記第1の電子デバイスの前記ローカルメモリから前記データを受信するための前記集約システムのランデブーメモリを提供することと、
    前記第1の電子デバイスの前記ローカルメモリに前記データが伝送用として存在するとの前記集約システムによる判定と、前記第1の電子デバイスの前記ローカルメモリから受信される前記データを記憶するための位置が前記ランデブーメモリに割り当てられているとの判定とに応じて、前記データを、前記第1の電子デバイスの前記ローカルメモリから前記ランデブーメモリに転送することと、
    を含む方法。
  18. 前記第1の電子デバイスの前記ローカルメモリにおいて前記データが伝送用に使用可能であるという前記第1の電子デバイスからの通知を生成することと、
    前記ランデブーメモリにて使用可能なバッファを識別することと、
    前記第1の電子デバイスの前記ローカルメモリから前記データを受信するために前記使用可能なバッファを割り当てることと、
    前記データを、前記第1の電子デバイスの前記ローカルメモリから前記ランデブーメモリの前記使用可能なバッファに出力することと、
    をさらに含む請求項17に記載の方法。
  19. 前記第2の電子デバイスのローカルメモリが前記データを受信可能であるとの判定を行うことと、
    前記データを、前記ランデブーメモリから前記第2の電子デバイスの前記ローカルメモリに転送することと、
    をさらに含む請求項17に記載の方法。
  20. 前記ランデブーメモリにおいて前記データが伝送用に使用可能であるという前記ランデブーメモリからの通知を生成することと、
    前記第2の電子デバイスの前記ローカルメモリにて使用可能なバッファを識別することと、
    前記第2の電子デバイスの前記ローカルメモリにて前記使用可能なバッファを割り当てることと、
    前記データを、前記ランデブーメモリから前記第2の電子デバイスの前記ローカルメモリに出力することと、
    をさらに含む請求項19に記載の方法。
  21. 前記第1及び第2の電子デバイスのうち少なくとも一つはサーバノードを含む、請求項17に記載の方法。
  22. 前記第2の電子デバイスは、サーバノード又はリモートコンピュータである、請求項17に記載の方法。
  23. 複数の電子デバイスと集約システムとの間で通信する方法であって、
    前記複数の電子デバイスのうち第2の電子デバイスに送信するデータを、前記複数の電子デバイスのうち第1の電子デバイスのローカルメモリに提供することと、
    前記集約システムの仮想ネットワークインターフェースカード(vNIC)に対して、前記第1の電子デバイスの前記ローカルメモリにおいて前記データが伝送用として使用可能であると通知することと、
    前記第2の電子デバイスにおける少なくとも一つの使用可能なバッファの通知を生成することと、
    前記データ受信するために前記少なくとも一つの使用可能なバッファを割り当てることと、
    前記vNICが、前記データを、前記第2の電子デバイスにおける前記少なくとも一つの使用可能なバッファに出力することと、
    前記第1の電子デバイスの前記ローカルメモリに伝送用として前記データがあるとの判定と、前記第2の電子デバイスにおける前記少なくとも一つの使用可能なバッファの割り当ての判定とに応じて、前記データを、前記第1の電子デバイスの前記ローカルメモリから前記ランデブーメモリに転送する、
    方法。
  24. 前記電子デバイスの少なくとも一つはサーバノードを含む、請求項23に記載の方法。
  25. 前記第2の電子デバイスは、サーバノード又はリモートコンピュータである、請求項23に記載の方法。
  26. コンピュータ可読プログラムコードを有するコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、
    前記コンピュータ可読プログラムコードは、
    集約システムを介して第2の電子デバイスにデータを送信するために、第1の電子デバイスのローカルメモリに前記データを提供するように構成されたコンピュータ可読プログラムコードと、
    前記集約システムの仮想ネットワークインターフェースカード(vNIC)に対して、前記第1の電子デバイスの前記ローカルメモリにおいて前記データが伝送用として使用可能であると通知するように構成されたコンピュータ可読プログラムコードと、
    前記第2の電子デバイスにおける少なくとも一つの使用可能なバッファの通知を生成するように構成されたコンピュータ可読プログラムコードと、
    前記データを受信するために前記少なくとも一つの使用可能なバッファを割り当てるように構成されたコンピュータ可読プログラムコードと、
    前記vNICが、前記データを、前記第2の電子デバイスにおける前記少なくとも一つの使用可能なバッファに出力するように構成されたコンピュータ可読プログラムコードと、
    前記第1の電子デバイスの前記ローカルメモリに伝送用として前記データが存在するとの判定と、前記第2の電子デバイスにおける前記少なくとも一つの使用可能なバッファの割り当ての判定に応じて、前記データを、前記第1の電子デバイスの前記ローカルメモリから前記ランデブーメモリに転送するように構成されたコンピュータ可読プログラムコードと、
    を含むコンピュータプログラム製品。
JP2015512707A 2012-05-14 2013-05-10 サーバノード相互接続デバイス及びサーバノード相互接続方法 Active JP6392745B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/470,847 2012-05-14
US13/470,847 US8868672B2 (en) 2012-05-14 2012-05-14 Server node interconnect devices and methods
PCT/US2013/040508 WO2013173181A1 (en) 2012-05-14 2013-05-10 Server node interconnect devices and methods

Publications (2)

Publication Number Publication Date
JP2015522991A true JP2015522991A (ja) 2015-08-06
JP6392745B2 JP6392745B2 (ja) 2018-09-19

Family

ID=49549514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015512707A Active JP6392745B2 (ja) 2012-05-14 2013-05-10 サーバノード相互接続デバイス及びサーバノード相互接続方法

Country Status (7)

Country Link
US (1) US8868672B2 (ja)
EP (1) EP2850533A4 (ja)
JP (1) JP6392745B2 (ja)
KR (1) KR101665035B1 (ja)
CN (1) CN104395897B (ja)
IN (1) IN2014DN09341A (ja)
WO (1) WO2013173181A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013251715A (ja) * 2012-05-31 2013-12-12 Toshiba Corp ルータ及びメニーコアシステム
US20140237156A1 (en) * 2012-10-25 2014-08-21 Plx Technology, Inc. Multi-path id routing in a pcie express fabric environment
US9344383B2 (en) * 2012-11-07 2016-05-17 Dell Products L.P. Event driven network system
US20140164669A1 (en) * 2012-12-09 2014-06-12 Giovanni Coglitore Disaggregation of server components in a data center
US9363204B2 (en) * 2013-04-22 2016-06-07 Nant Holdings Ip, Llc Harmonized control planes, systems and methods
US9363193B2 (en) * 2013-11-19 2016-06-07 Cavium, Inc. Virtualized network interface for TCP reassembly buffer allocation
CN104753702B (zh) 2013-12-27 2018-11-20 华为技术有限公司 一种集群系统中的集群处理方法、装置及系统
EP3198806B1 (en) * 2014-09-25 2019-09-25 Intel Corporation Network communications using pooled memory in rack-scale architecture
TWI511104B (zh) * 2014-10-07 2015-12-01 Wistron Corp 互動式電子白板操作方法以及使用該方法的裝置
US9311811B1 (en) 2014-10-08 2016-04-12 Google Inc. Alarm profile for a fabric network
US9977750B2 (en) * 2014-12-12 2018-05-22 Nxp Usa, Inc. Coherent memory interleaving with uniform latency
US10097484B2 (en) 2015-10-21 2018-10-09 International Business Machines Corporation Using send buffers and receive buffers for sending messages among nodes in a network
US10509738B2 (en) * 2016-07-01 2019-12-17 Intel Corporation Remote memory operations
CN109952744B (zh) 2016-09-26 2021-12-14 河谷控股Ip有限责任公司 云网络中提供虚拟电路的方法和设备
CN107612721B (zh) * 2017-08-31 2021-07-06 网宿科技股份有限公司 运维数据的管理系统及方法、汇聚服务器及处理服务器
JP6711339B2 (ja) * 2017-10-25 2020-06-17 横河電機株式会社 通信処理装置、プログラム、および通信処理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0382244A (ja) * 1989-08-25 1991-04-08 Nec Corp プロセッサ間通信システム
JPH10229429A (ja) * 1997-02-13 1998-08-25 Oki Electric Ind Co Ltd 通信ネットワークシステム
US20030208631A1 (en) * 2002-05-06 2003-11-06 Todd Matters System and method for dynamic link aggregation in a shared I/O subsystem
US20050041510A1 (en) * 2003-08-19 2005-02-24 Jean Khawand Method and apparatus for providing interprocessor communications using shared memory
JP2005204089A (ja) * 2004-01-15 2005-07-28 Nec Corp 通信システム
JP2009282917A (ja) * 2008-05-26 2009-12-03 Hitachi Ltd サーバ間通信機構及びコンピュータシステム
US20110202701A1 (en) * 2009-11-05 2011-08-18 Jayanta Kumar Maitra Unified system area network and switch

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5291482A (en) 1992-07-24 1994-03-01 At&T Bell Laboratories High bandwidth packet switch
US5636210A (en) * 1995-08-02 1997-06-03 Agrawal; Jagannath P. Asynchronous transfer mode packet switch
US6370605B1 (en) 1999-03-04 2002-04-09 Sun Microsystems, Inc. Switch based scalable performance storage architecture
US6850987B1 (en) 1999-06-01 2005-02-01 Fastforward Networks, Inc. System for multipoint infrastructure transport in a computer network
US6785892B1 (en) 2000-06-23 2004-08-31 Unisys Communications between partitioned host processors and management processor
US20020069318A1 (en) 2000-12-01 2002-06-06 Chow Yan Chiew Real time application accelerator and method of operating the same
US6795886B1 (en) 2000-12-22 2004-09-21 Ncr Corporation Interconnect switch method and apparatus
US7154885B2 (en) 2001-12-31 2006-12-26 Stmicroelectronics Ltd. Apparatus for switching data in high-speed networks and method of operation
US7421532B2 (en) * 2003-11-18 2008-09-02 Topside Research, Llc Switching with transparent and non-transparent ports
US7694167B2 (en) 2004-10-22 2010-04-06 Microsoft Corporation Maintaining routing consistency within a rendezvous federation
US8095600B2 (en) 2004-10-22 2012-01-10 Microsoft Corporation Inter-proximity communication within a rendezvous federation
US7480303B1 (en) * 2005-05-16 2009-01-20 Pericom Semiconductor Corp. Pseudo-ethernet switch without ethernet media-access-controllers (MAC's) that copies ethernet context registers between PCI-express ports
US8406220B2 (en) * 2005-12-30 2013-03-26 Honeywell International Inc. Method and system for integration of wireless devices with a distributed control system
EP1977571A2 (en) * 2006-01-12 2008-10-08 Broadcom Israel R&D Method and system for protocol offload and direct i/o with i/o sharing in a virtualized network environment
US8397284B2 (en) 2006-01-17 2013-03-12 University Of Maryland Detection of distributed denial of service attacks in autonomous system domains
JP2007328461A (ja) * 2006-06-06 2007-12-20 Matsushita Electric Ind Co Ltd 非対称マルチプロセッサ
US7925802B2 (en) 2007-06-21 2011-04-12 Seamicro Corp. Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric
US8140719B2 (en) 2007-06-21 2012-03-20 Sea Micro, Inc. Dis-aggregated and distributed data-center architecture using a direct interconnect fabric
US7788334B2 (en) 2007-06-26 2010-08-31 International Business Machines Corporation Multiple node remote messaging
US9239666B2 (en) * 2007-09-12 2016-01-19 Citrix Systems, Inc. Methods and systems for maintaining desktop environments providing integrated access to remote and local resources
CN101453398A (zh) * 2007-12-06 2009-06-10 怀特威盛软件公司 一种新型分布式网格超级计算系统及方法
JP5096905B2 (ja) * 2007-12-20 2012-12-12 株式会社日立製作所 サーバ装置及びそのリンク回復処理方法
US8249072B2 (en) * 2009-03-12 2012-08-21 Oracle America, Inc. Scalable interface for connecting multiple computer systems which performs parallel MPI header matching
CN102150147A (zh) * 2008-07-03 2011-08-10 惠普开发有限公司 存储器服务器
KR101539297B1 (ko) 2009-01-05 2015-07-24 삼성전자주식회사 반도체 장치, 이를 포함하는 반도체 시스템, 및 반도체 장치의 전압 공급방법
US7913027B2 (en) * 2009-04-07 2011-03-22 Lsi Corporation Configurable storage array controller
US8352669B2 (en) 2009-04-27 2013-01-08 Lsi Corporation Buffered crossbar switch system
TW201115458A (en) * 2009-10-29 2011-05-01 Ralink Technology Corp Buffer space allocation method and related packet switch

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0382244A (ja) * 1989-08-25 1991-04-08 Nec Corp プロセッサ間通信システム
JPH10229429A (ja) * 1997-02-13 1998-08-25 Oki Electric Ind Co Ltd 通信ネットワークシステム
US20030208631A1 (en) * 2002-05-06 2003-11-06 Todd Matters System and method for dynamic link aggregation in a shared I/O subsystem
US20050041510A1 (en) * 2003-08-19 2005-02-24 Jean Khawand Method and apparatus for providing interprocessor communications using shared memory
JP2005204089A (ja) * 2004-01-15 2005-07-28 Nec Corp 通信システム
JP2009282917A (ja) * 2008-05-26 2009-12-03 Hitachi Ltd サーバ間通信機構及びコンピュータシステム
US20110202701A1 (en) * 2009-11-05 2011-08-18 Jayanta Kumar Maitra Unified system area network and switch

Also Published As

Publication number Publication date
KR101665035B1 (ko) 2016-10-24
KR20150013259A (ko) 2015-02-04
US20130304841A1 (en) 2013-11-14
CN104395897A (zh) 2015-03-04
IN2014DN09341A (ja) 2015-07-10
WO2013173181A1 (en) 2013-11-21
CN104395897B (zh) 2018-08-14
JP6392745B2 (ja) 2018-09-19
EP2850533A4 (en) 2016-06-29
US8868672B2 (en) 2014-10-21
EP2850533A1 (en) 2015-03-25

Similar Documents

Publication Publication Date Title
JP6392745B2 (ja) サーバノード相互接続デバイス及びサーバノード相互接続方法
US8806025B2 (en) Systems and methods for input/output virtualization
CN110892380B (zh) 用于流处理的数据处理单元
US8930595B2 (en) Memory switch for interconnecting server nodes
CN107995129B (zh) 一种nfv报文转发方法和装置
US10621138B2 (en) Network communications using pooled memory in rack-scale architecture
US9253287B2 (en) Speculation based approach for reliable message communications
CN114303138A (zh) 用于多核计算环境的硬件队列调度
US10248315B2 (en) Devices and methods for interconnecting server nodes
US20150215226A1 (en) Device and Method for Packet Processing with Memories Having Different Latencies
US20140068205A1 (en) Systems and methods for managing queues
US11343177B2 (en) Technologies for quality of service based throttling in fabric architectures
US20220078119A1 (en) Network interface device with flow control capability
CN114490499A (zh) 用于流送输入/输出数据的系统、装置和方法
US10318473B2 (en) Inter-device data-transport via memory channels
US10423333B2 (en) System and method for scalable processing of abort commands in a host bus adapter system
US9154569B1 (en) Method and system for buffer management

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160414

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170523

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180507

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180823

R150 Certificate of patent or registration of utility model

Ref document number: 6392745

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