JP6420354B2 - 優先度および帯域幅割り当てに基づくトラフィッククラスアービトレーション - Google Patents

優先度および帯域幅割り当てに基づくトラフィッククラスアービトレーション Download PDF

Info

Publication number
JP6420354B2
JP6420354B2 JP2016552987A JP2016552987A JP6420354B2 JP 6420354 B2 JP6420354 B2 JP 6420354B2 JP 2016552987 A JP2016552987 A JP 2016552987A JP 2016552987 A JP2016552987 A JP 2016552987A JP 6420354 B2 JP6420354 B2 JP 6420354B2
Authority
JP
Japan
Prior art keywords
priority
bandwidth
packets
network
virtual lane
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
JP2016552987A
Other languages
English (en)
Other versions
JP2017509240A (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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2017509240A publication Critical patent/JP2017509240A/ja
Application granted granted Critical
Publication of JP6420354B2 publication Critical patent/JP6420354B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • H04L49/358Infiniband Switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/245Traffic characterised by specific attributes, e.g. priority or QoS using preemption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]

Description

本開示は、ネットワークシステムの改善に関し、より具体的には、優先度および帯域幅割り当てに基づくトラフィッククラスアービトレーションに関する。
ハイパフォーマンスコンピューティング(HPC)アプリケーションは、例えば、Infiniband(商標)等のHPCファブリックネットワーク通信技術を利用することが多い。このようなHPCファブリックには、管理トラフィック、ストレージトラフィック、アプリケーショントラフィック等、複数の異なる種類のトラフィックが含まれる場合がある。さらに、複数の異なるサービス品質(QoS)レベルならびに複数の異なる優先度およびレイテンシ要件に対応付けられている複数の異なるクラスのアプリケーショントラフィックが存在する場合がある。従来のネットワークファブリックスイッチの機能は一般的に、優先度、帯域幅の占有割合およびユーザのネットワークトラフィックのレイテンシについてのユーザ設定要求に近づけることのみである。
請求の対象としている主題の特徴および利点は、以下に記載する当該主題の実施形態の詳細な説明から明らかであろう。以下に記載する実施形態の説明は、添付図面に基づき解釈されるべきである。添付図面は以下の通りである。
本開示のさまざまな実施形態に係る、ネットワークシステムの上位図である。 本開示のさまざまな実施形態に係る、ネットワークノードのブロック図である。 本開示のさまざまな実施形態に係る、ネットワークコントローラのブロック図である。 本開示のさまざまな実施形態に係るパケットフレームを示す図である。 本開示のさまざまな実施形態に係る仮想レーングループテーブルを示す図である。 本開示に係る一実施形態例の処理を説明するためのフローチャートである。 以下に記載する<発明を実施するための形態>では実施形態例を参照しているが、当業者には多くの代替例、変形例および変更例が明らかであろう。
本開示では概して、ストレージ、ハイパフォーマンスコンピューティング(HPC)およびイーサネット(登録商標)ベースファブリックインターコネクトを含む高性能アプリケーションで利用される改善されたネットワーク通信用のシステム、デバイス、方法およびコンピュータ可読媒体を提供する。ネットワークコントローラは、以下でより詳細に説明するが、仮想レーンに対応付けられている複数のトラフィッククラス間でパケットのアービトレーションおよびプリエンプションを実現するようネットワークノード、例えば、スイッチの一部として構成されているとしてよい。アービトレーションは、仮想レーンに対する帯域幅(BW)割り当てと消費BWの測定値との比較に基づき、優先度を調整することによって実行されるとしてよい。プリエンプションは、仮想レーンを通って送信されるパケットの相対的な優先度およびレイテンシ感度に基づき実行されるとしてよい。このため、複数の優先度レベルを設定するべく、そして、低優先度トラフィックの帯域幅が不足しないように高優先度トラフィックが消費し得る帯域幅の量を特定するべく、ルールが設けられるとしてよい。高優先度トラフィックは、一般的に帯域幅が低く、このため他のトラフィックに比べて優先度を与えられるとしてよい。高優先度トラフィックが割り当てられた帯域幅制限を超えることがあっても他のトラフィックから帯域幅を奪う心配がない。
図1は、本開示のさまざまな実施形態に係るネットワークシステム100を示す図である。ネットワークシステム100は概して、少なくとも1つのネットワークノード部102(本明細書では「ソースノード102」または「送信ノード」とも呼ばれる)、少なくとも1つの中間ノード部122(本明細書では、「スイッチノード」とも呼ばれる)およびエンドノード部126(本明細書では「受信ノード」とも呼ばれる)を備える。各ノード部は、図示されているように、通信リンク124aおよび124bを介して互いに通信するよう構成されている。ソースノード102、中間ノード122およびエンドノード126は、ネットワークファブリック、例えば、HPCファブリックにリンクパートナーとして含まれているとしてよい。図1の図示内容は説明を簡単にするためのものであり、ネットワークファブリックは複数の中間ノード部および/またはエンドノード部を含み、それぞれが直列および/または並列に、互いにおよび/またはソースノード102と接続されており、例えば、トーラスネットワークトポロジー、リングトポロジー、Closトポロジー、Fat Treeトポロジー等を形成し得ると理解されたい。ソースノード102、中間ノード122および/またはエンドノード126はそれぞれ、コンピュータノード部(例えば、ホストサーバシステム、ラップトップ、タブレット、ワークステーション等)、スイッチ、ルータ、ブリッジ、ハブ、ファブリックインターコネクト、ネットワークストレージデバイス、ネットワークアタッチトデバイス、不揮発性メモリ(NVM)ストレージデバイス等を構成するとしてよい。
「ソースノード」および「エンドノード」という用語は説明を簡略化するために用いられる用語であり、一方向性の送信フローを暗示することを意味したものではないと理解されたい。本明細書では全二重(フルデュプレックス)接続の片側に言及することが多いが、記載する処理は逆方向(例えば、エンドノード126からソースノード102)にも応用可能である。
ユーザまたはネットワーク管理者140(またはその他の適切なエンティティ)が、例えば、パケットの形態で複数の異なる種類のトラフィックが送信され得るネットワークファブリック100について任意の数のトラフィッククラス(TC)を定義するとしてよい。トラフィッククラスは、ノード部同士の間で先験的に定義されるサービス品質(QoS)レベルと定義されるとしてよい。より一般的には、トラフィッククラスは、コンピュータネットワークトラフィックをカテゴリー化したものを表すとしてよい。例えば、特定のアプリケーション(例えば、音声/動画)は、適切に動作するために特定のレベルのパケットスループットを必要とするとしてよい。一方、一般的なウェブ閲覧および電子メール等の他のアプリケーションは、音声および/または動画アプリケーションのスループットは必要としない場合がある。このため、トラフィッククラスの構築は、例えば、一のトラフィッククラスにおけるパケット転送が他のクラスの転送よりも優先度が高くなるように行われるとしてよい。また、特定のトラフィック、例えば、ストレージトラフィックは、ゼロパケットロス特性を必要とし得る特別なトラフィッククラスが割り当てられるとしてよい。一方、他のトラフィッククラスは、ベストエフォート方式でサービス提供を受けるとしてもよい。ゼロパケットロス挙動等が必要になる特定のトラフィッククラスではフロー制御または輻輳管理を可能にするとしてよい。
一部の実施形態において、リンク124a、124bは、複数の異なるトラフィッククラス(TC)と対応付けられ得る任意の数の仮想レーン(VL)または仮想レーングループ(VLG)を有するように構成されているとしてよい。例えば、仮想レーン1はTC1−3を搬送するよう構成されるとしてよく、仮想レーン2はTC4および5を搬送するよう構成されるとしてよい。しかし、一部の実施形態において、VLが対応付けられるTCは1つのみであるというような制限が課されることもある。
これに加えて、一部の実施形態において、複数のVLがTCに対応付けられるとしてもよい。このため、例えば、VL0−1がTC0−4に対応付けられ、VL2−3がTC5−16に対応付けられるとしてもよい。
ユーザ/管理者140はさらに、TC同士の間の相対的な優先度、および、各TCに提供されるリンク帯域幅の割り当て分を定義するための仕様を提供するとしてよい。ファブリックマネージャ150は、これらの仕様を、アービトレーションプリエンプションロジックが利用できるよう、デバイスレベル(例えば、ノード102、122、126)にマッピングするよう構成されているとしてよい。これについては以下で説明する。このため、各VLまたは各VLGは、優先度が定義されており、ネットワークまたはリンク帯域幅の割り当て分が割り当てられているとしてよい。
ソースノード102、中間ノード122およびエンドノード126は、例えば、イーサネット(登録商標)通信プロトコルを用いて、リンク124aおよび124bを介して互いに通信し合うとしてよい。イーサネット(登録商標)通信プロトコルは、トランスミッションコントロールプロトコル/インターネットプロトコル(TCP/IP)を用いて通信を実現することが可能としてよい。イーサネット(登録商標)プロトコルは、米国電気電子学会(IEEE)が公開しているイーサネット(登録商標)規格である「IEEE802.3規格」(2002年3月公開)および/または当該規格の後発バージョン、例えば、イーサネット(登録商標)用IEEE802.3規格(2012年公開)と互換性を持つか、または、これらに準拠しているとしてよい。イーサネット(登録商標)プロトコルはさらに、媒体アクセス制御(MAC)ブリッジおよび仮想ブリッジローカルエリアネットワーク用のIEEE規格である「IEEE802.1Q規格」(2005年公開)または当該規格の後発バージョン、例えば、IEEE802.1Q規格(2011年公開)と互換性を持つか、または、これらに準拠しているとしてよい。言うまでもなく、他の実施形態では、ソースノード102、中間ノード122およびエンドノード126は、例えば、上述したイーサネット(登録商標)通信プロトコルと同様または異なる独自および/またはカスタマイズされた通信プロトコルを用いて互いに通信するとしてもよい。
図2は、本開示のさまざまな実施形態に係るネットワークノード200を示すブロック図である。ノード200は、図1のノード102、122および/または126を表しているとしてよく、ネットワークコントローラ204(例えば、ネットワークインターフェースカード等)、システムプロセッサ206(例えば、Intel Corporation社製のマルチコア汎用プロセッサ等)およびシステムメモリ208を有するとしてよい。システムメモリ208は、1または複数のバッファ238を含むとしてよい。各バッファは、少なくとも部分的に、ネットワークコントローラ204および/またはシステムプロセッサ206によって構築および/または制御されるとしてよい。
ネットワークコントローラ204は、通信リンク124a、124bを介してノード同士をインターフェースするよう一般的に構成されているPHY回路210を有する。PHY回路210は、上述したIEEE802.3イーサネット(登録商標)通信プロトコルと互換性を持つか、または、準拠しているとしてよい。当該プロトコルは、例えば、10GBASE−T、10GBASE−KR、40GBASE−KR4、40GBASE−CR4、100GBASE−CR10、100GBASE−CR4、100GBASE−KR4、および/または、100GBASE−KP4を含み、および/または、上述したIEEE802.3イーサネット(登録商標)通信プロトコルに準拠している、および/または、後に開発された任意の通信プロトコルに準拠している他のPHY回路を含むとしてよい。PHY回路210は、データパケットおよび/またはフレームをリンク124a、124bを介して送信するよう構成されている送信回路(Tx)212、および、データパケットおよび/またはフレームをリンク124a、124bを介して受信するよう構成されている受信回路(Rx)214を有する。言うまでもなく、PHY回路210はさらに、アナログデジタル変換およびデジタルアナログ変換、データのエンコードおよびデコード、アナログ寄生容量除去(例えば、クロストーク除去)、および受信データの回復を実行するよう構成されているエンコード/デコード回路(不図示)を有するとしてよい。Rx回路214は、データ受信タイミングの調整を行うよう構成されているフェーズロックループ回路(PLL、不図示)を含むとしてよい。
通信リンク124aおよび/または124bはそれぞれ、例えば、銅製のTwinaxケーブル、プリント配線基板上のバックプレーン配線、光ファイバケーブル、銅製のツイストペアケーブル等を例えば含む媒体依存性インターフェースを有するとしてよい。一部の実施形態において、通信リンク124aおよび124bはそれぞれ、例えば、ノード102、122、126のTxおよびRx212/214の間に複数の別個の接続を設ける複数の論理チャネルおよび/または物理チャネル(例えば、差動対チャネル)を有するとしてよい。中間ノード122(例えば、スイッチまたはルータ)の場合、中間ノード内には明示的なネットワークコントローラ204は存在しないとしてよい。しかし、ネットワークコントローラ204について図示されている機能ブロックは、スイッチまたはルータのロジックまたはシリコンの一部として含まれているとしてよい。本明細書で用いる場合、「リンクレベル」とは、例えば、リンク124aを介したソースノード102と中間ノード122との間のフレーム通信を意味する。このため、この文脈では、「リンク」とは、リンク124aを介したノード102とノード122との間のフレーム送信を含む。例えば、ノード102のTX回路は、リンク124aを介して、ノード122のRX回路にフレームを送信する。
ネットワークコントローラ204はさらに、上述したイーサネット(登録商標)通信プロトコルで定義されているように、中間ノード122および/またはエンドノード126との通信のためにアドレッシングプロトコルおよびアクセス制御プロトコルを提供するように構成されている媒体アクセス制御(MAC)モジュール220を有する(例えば、MACモジュール220はレイヤ2デバイスであってよい)。
ネットワークコントローラ204はさらに、リンク124a、124bで各仮想レーン230が消費する帯域幅を測定するよう概して構成されている帯域幅モニタリングモジュール218を有するとしてよい。ネットワークコントローラ204はさらに、仮想レーンの優先度を、当該レーンの帯域幅の割り当て分と帯域幅の測定値との比較に基づいて調整するよう概して構成されている優先度アービタモジュール216を有するとしてよい。ネットワークコントローラ104はさらに、高優先度パケットのために低優先度パケットの送信を中断するよう概して構成されているプリエンプションインターリーブモジュール228を有するとしてよい。モジュール216、218および228のそれぞれは、以下でより詳細に説明する。一部の実施形態において、ノードは図2に図示したモジュールの一部を含み得るので、図示したモジュールの全てがいずれの実施形態でも必要なわけではないと理解されたい。一部の実施形態において、ネットワークノード102、122、126のさまざまなコンポーネント、回路およびモジュール(ネットワークコントローラ204、プロセッサ206および/または他のシステムを含む)は、システムオンチップ(SoC)アーキテクチャで組み合わせるとしてよい。SoCは、サーバシステムまたはCPUの一部として含まれているとしてよい。
図3は、本開示のさまざまな実施形態に係るネットワークコントローラ204の一部を示すより詳細なブロック図(300)である。複数の(K個の)仮想レーン230(つまり、VL0からVL K−1)は、ネットワークコントローラ204に対する入力として設けられている。各仮想レーンにはトラフィッククラスが対応付けられているとしてよい。帯域幅モニタリングモジュール218は、複数の(N個の)帯域幅計測部320を含むものとして図示されている。各帯域幅計測部320は、選択された仮想レーングループが消費する帯域幅を測定するよう構成されている。一部の実施形態において、測定の対象として、VLグループ選択モジュール302によって最高でN個の仮想レーングループが選択されるとしてよい。仮想レーングループ(VLG)は、入力として設けられるK個の仮想レーンのいずれかを含むとしてよい。例えば、第1のVLGは、VL0、VL2およびVL3を含むとしてよく、一方で、第2のVLGは、VL1、VL5およびVL K−1を含むとしてよい。言うまでもなく、任意のその他のグループ分けおよび組み合わせが可能であり、最高でN個の異なるグループおよび最高でK個の異なるVLが可能である。このため、各VLは、N個の帯域幅計測部320のうち1つに割り当てられるとしてよい。一部の実施形態において、複数のVLが一の帯域幅計測部に割り当てられるとしてよい。しかし、一般的に、一のVLが複数の帯域幅計測部302に割り当てられることはないとしてよい。一部の実施形態において、帯域幅計測部302は、トークンバケット、リーキーバケット、スライディングウィンドウ、または、所定時間内に消費される帯域幅の利用量を測定するよう構成されている任意のその他の公知のメカニズムを用いて実装されるとしてよい。
優先度アービタモジュール216は、本例において、高優先度、中優先度、低優先度およびオーバー帯域幅という4つの優先度レベルのうち1つについてアービトレーションするようそれぞれが構成されている4個のアービタサブモジュール216a、216b、216c、216dを含むものとして図示されている。他の実施形態では利用するアービタサブモジュールおよび対応付けられている優先度レベルの数は任意であると理解されたい。 優先度アービタモジュール216はさらに、特に1または複数のVLまたはVLGが割り当てられた帯域幅制限を超えた場合に、帯域幅モニタリングに基づき、複数のVLまたはVLGがリンク帯域幅を共有する方法を制御するよう構成されている優先度グループ選択モジュール304を含むものとして図示されている。割り当てられた帯域幅を超えたVLまたはVLGは、本開示では「非適合」という用語で説明する。超えていない場合には「適合」と見なされる。例えば、VL0にXビット毎秒を割り当てられているが、ネットワークがXビット毎秒を超えるパケットレートでトラフィックを送信しようと試みる場合、VL0は非適合と分類される。VL/VLGの適合または非適合のいずれかへの分類は、時間の経過と共に帯域幅モニタリングの結果に基づき変化するとしてよい。
トラフィックが適合している場合、帯域幅モニタリングは何も役割を持たないとしてよい。適合トラフィックのためのアービトレーションポリシーでは、所与のグループ(VLG)の優先度レベル(例えば、高優先度、中優先度および低優先度)において、例えばモジュール304によって事前に割り当てられた優先度を適用するとしてよい。一の優先度レベルにおいて、各優先度アービタサブモジュール216a、216b、216cは、当該優先度に割り当てられたVLを選択する上でラウンドロビン方式を採用するとしてよい。一部の実施形態において、ラウンドロビン方式に代えて、多くの他の公知の代替方法のいずれか、例えば、最長未使用期間方式を利用するとしてよい。しかし、帯域幅割り当てを超えるグループには、例えば、モジュール304によって、可能な限り低い優先度レベルが割り当てられるとしてよい。この最低優先度レベル(例えば、オーバーBW優先度レベル)は、適合トラフィックに割り当てられた優先度レベル(例えば、216a、216b、216c)のいずれよりも低い。
処理について説明すると、各VLには、N個の帯域幅計測部320のうち1つに対応付けられているN個の帯域幅モニタリンググループのうち1つが割り当てられるとしてよい。第1の実施形態例において、各VLに対して、当該VLが割り当てられている帯域幅計測部が帯域幅チェックを実行する。このチェックによって、割り当てられている帯域幅利用量をVLが超過しているか否かを判断する。割り当てられている帯域幅利用量を超過していない場合(つまり、VLがBWチェックに合格する場合)、当該VLを、アービトレーション候補として、当該VLについて割り当てられた優先度レベル(例えば、高優先度、中優先度および低優先度)に対応付けられている優先度アービタサブモジュールに提供する。割り当てられている帯域幅利用量を超過している場合(つまり、VLがBWチェックに不合格となる場合)、当該VLは、最低優先度レベル、例えば、オーバー帯域幅レベルが割り当てられ、アービトレーション候補としてオーバー帯域幅優先度アービタサブモジュール216dに提供される。アービタサブモジュール216a、216b、216cおよび216dはそれぞれ、当該サブモジュールに対応付けられている優先度レベル(例えば、高優先度、中優先度、低優先度およびオーバー帯域幅)を持つ候補全ての間でアービトレーションを実行する。
第2の実施形態例において、各VLは、N個の帯域幅計測部320のうち1つに対応付けられているN個の帯域幅モニタリンググループのうち1つに割り当てられているが、各帯域幅モニタリンググループは、当該グループについて1つのVLを候補として挙げるべく、割り当てられているVLの間でアービトレーションを行う。あるグループについて結果として得られるVL候補は、割り当てられている帯域幅利用量を当該VLが超えているか否かを判断するべく帯域幅チェックを行う。割り当てられている帯域幅利用量を超過していない場合、当該VLを、アービトレーション候補として、当該VLについて割り当てられた優先度レベル(例えば、高優先度、中優先度および低優先度)に対応付けられている優先度アービタサブモジュールに提供する。割り当てられている帯域幅利用量を超過している場合、当該VLは、最低優先度レベル、例えば、オーバー帯域幅レベルが割り当てられ、アービトレーション候補としてオーバー帯域幅優先度アービタサブモジュール216dに提供される。
以下に記載する説明は、上述した第1の実施形態例と第2の実施形態例の相違点を明確にするためのものである。以下の記載について、VLは6個(VL0−5)であり、帯域幅モニタリンググループが2個(BW0およびBW1)である。VL0−3はBW0に割り当てられ、VL4−5はBW1に割り当てられる。さらに、この説明について、全てのVLは利用可能帯域幅のうち10%が割り当てられており、全てがこの制限を超えている。このため、第1の実施形態例では、VL0−5はすべてBWチェックに不合格となり、オーバーBW優先度アービトレーション216dに進み、利用可能帯域幅のうちそれぞれに与えられる割り当て分は等しい(1/6)。しかし、第2の実施形態例では、BW0モニタリンググループは、VL0−3のうち第1の候補を選び、BW1モニタリンググループは、VL4−5のうち第2の候補を選ぶ。どちらの候補もBWチェックに不合格となり、オーバーBW優先度アービトレーション216dに進み、同率(それぞれ1/2)で選択され、VL0−3のそれぞれには利用可能帯域幅のうち1/8が与えられ(4個のVLが帯域幅の半分を共有する)、VL4−5のそれぞれには利用可能帯域幅のうち1/4が与えられる(2つのVLは帯域幅のうち残りの半分を共有する)。
一部の実施形態において、VLが帯域幅チェックで不合格となると、送信を禁止されるとしてよい(例えば、どのアービトレーションでも候補として利用できなくなる)。このため、オーバー帯域幅優先度アービタサブモジュール216dが除外される。
各アービタサブモジュール216a、216b、216c、216dが実行するアービトレーションは、他のサブモジュールが実行するアービトレーションとは無関係であるとしてよい。例えば、低優先度アービタサブモジュール216cが行う選択は、当該選択を不適切とする高優先度候補があるか否かをチェックすることなく、行うことができる。このような独立したアービトレーションプロセスは、実装で選択され得るラウンドロビン方式または最長未使用期間方式を含む多数の公知のアービトレーション方式のいずれかを利用するとしてよい。各優先度レベルにおいてアービトレーションの結果選択されたVL(例えば、アービトレーションに「勝利」したVL)にはこの後、それぞれの優先度レベルに基づき追加ステージのアービトレーションが実行されるとしてよい。この追加ステージでは、最高優先度候補は、低優先度候補よりも優先され、送信対象として選択される308。
プリエンプションインターリーブモジュール228は、別のステージのアービトレーションプロセスにおいて、パケットプリエンプションおよびインターリーブを実行するように構成されているとしてよい。パケットプリエンプションを用いて、高優先度でレイテンシ高感度のトラフィックのレイテンシを低減するとしてよい。特定の種類のデータおよびアプリケーションは、他に比べて、パケットレイテンシに対する感度が高いとしてよい。例えば、ボイスオーバーIPアプリケーションにおけるオーディオストリームは、レイテンシに対する感度が比較的高いとしてよい。これは、双方向で会話をしているユーザは普通、オーディオ送信のレイテンシに気を取られること、または、イライラすることが多いためである。一部の実施形態において、レイテンシ感度は、一の種類のトラフィックについて定量化され対応付けられるとしてよい。感度は、例えば、許容可能な時間遅延または相対的な重要度として、表現され得る。
現在アクティブなパケットにおいてフラグメンテーションが発生した場合、インターリーブを利用してリンクにおける帯域幅の損失を低減するとしてよい。 フラグメンテーションが発生するのは、例えば、上流ノード(例えば、現在のノードとソースノード102との間の他の中間ノード122)のプリエンプションインターリーブモジュールによってプリエンプションが適用される場合であるとしてよい。ユーザまたはネットワーク管理者は、特定のVLまたはVLGがレイテンシ高感度トラフィックを搬送すると特定するとしてよい。プリエンプションインターリーブモジュール228は、高優先度パケットを送信するべく低優先度パケットの送信を中断することによって、これらのVLGに含まれるパケットによる他のVLGに含まれるパケットのプリエンプションを可能にするように構成されているとしてよい。高優先度パケットの送信が完了すると、プリエンプションされたパケットの送信を再開する。一部の実施形態において、任意の優先度のパケットを他のアクティブなパケットへインターリーブすることが、このアクティブなパケットにおいて送信するフローコントロールデジット(FLIT:フリット)が無くなると(例えば、使い果たすと)、許可されるとしてよい。尚、FLIT(フリット)は、フロー制御の対象である送信可能情報の最小単位である。
このため、複数の優先度レベルを設定すること、および、低優先度トラフィックの帯域幅不足を制御するべく高優先度トラフィックによって消費され得る帯域幅の量を特定することを目的として、ルールが設定されるとしてよい。ルールが定める内容によると、例えば、相対的に低いレイテンシと共に相対的に低い帯域幅を必要とするトラフィッククラスは最高優先度に設定されるが、保証される帯域幅は低くするとしてよく、例えば、利用可能帯域幅の10%が当該クラスに保証される。このトラフィックを生成しているノードがこの低帯域幅予測に従っている限り、当該トラフィッククラスは最高優先度を維持する。プログラミングエラーまたは悪意のいずれかによって1または複数のノードがこのトラフィックを異常な量で送信し始めると、このトラフィッククラスは、帯域幅保証を超え、その優先度は下がる。高優先度トラフィックは、低い帯域幅が定められており、このため、万が一非適合状態になっても他のトラフィックの帯域幅が不足し得るという心配がなく、他のトラフィックよりも優先されているとしてよい。
一部の実施形態において、非適合パケットは、送信すべき適合パケットが他に無い場合にのみ送信されるので、これらのパケットが他の適合トラフィックから帯域幅を取り上げることはないため、帯域幅モニタリング部218によってカウントされないとしてよい。帯域幅チェックはパケット境界で実行されるとしてよく、パケットがアービトレーションに勝利しない限り、繰り返し行われるとしてよい。アービトレーションに勝利するべく待機している間に、非適合パケットが適合パケットとなる場合がある。この場合、このパケットの優先度は、最低優先度から元々割り当てられた優先度に戻る。パケットの送信途中で帯域幅制限を超過すると、当該パケットは、適合パケットとしての送信を終了するとしてよく、リンク下流でのパケットフラグメンテーションを抑制するべく、同一優先度またはより低い優先度の別のパケットに譲らない。しかし、一部の実施形態において、帯域幅チェックはFLIT(フリット)境界でも実行されるとしてよい。このような場合、パケットは、当該パケットの途中で優先度をオーバーBWに変更するとしてよく、(低優先度レベルの)他のパケットがプリエンプションするとしてよい。
図4は、本開示のさまざまな実施形態に係るパケットフレームを示す図である。フレーム400は、1または複数のデータパケットを中間ノード122および/またはエンドノード126に転送するべくソースノード102が生成するとしてよい。このため、フレーム400は、「送信ノード」フレーム形式と見なされるとしてよい。フレーム400は概して、ヘッダ部分402、および、ペイロード部分404を含む。ヘッダ部分402は、長さが20バイトであるとしてよく、HPCネットワークファブリックの特徴をサポートする上で適切なサイズであるとしてよい。図示しているフレーム形式は、最高で4キロバイトまでのペイロードを収容するとしてよい。ソースおよびデスティネーションのアドレスまたはロケーションID(SLID406、DLID408)はそれぞれ、16ビットの長さであり、48KのロケーションIDを超えるロケーションアドレッシング機能を実現する。仮想レーン(VL)フィールド410は、このパケットの送信に対応付けられている仮想レーンを特定するよう構成されているとしてよい。同図では、VLフィールド410は長さが4ビットであり、16個のレーンが可能である。
図5は、本開示のさまざまな実施形態に係る仮想レーングループテーブル500を示す図である。VL502の各グループは、例えば、ファブリックマネージャによって帯域幅について制限または割り当て分が与えられているとしてよい。帯域幅モニタリングに基づいて、各アービトレーションサイクルにおいて各グループが割り当てられたリンク帯域幅を超えたか否かをチェックするとしてよい。実装毎に、サポートすべきグループの数を決定するとしてよい。帯域幅の分配は、複数の異なるグループ間で共有するリンク帯域幅の利用割合に基づいて、割り当てられるとしてよい。テーブル500は、帯域幅割り当て504をどのように5つの異なるVLグループ502に割り当てるかの例を示す。本例では、全てのグループの帯域幅制限の合計がリンク帯域幅の100%を超えてもよいとしている。これが許容されるのは、ファブリックマネージャは管理トラフィックについて相対的に高い制限を特定している(本例では、VLグループ4)が、このように高い帯域幅を消費するのは非常にまれであると予測しているためである。このため、管理トラフィックは必要な場合には、要求される帯域幅を持つことが可能である。残りのトラフィックについての帯域幅割り当て(本例では、VLグループ0−3)は、管理トラフィックは通常は最低限に抑えられるので、他の種類のトラフィック(VLグループ0−3)に対して特定する制限値の合計が100%になると仮定して割り当てられるとしてよい。
図6は、本開示に係る一実施形態例の処理600を示すフローチャートである。これらの処理によって、ネットワーク通信を改善する方法を提供する。処理620において、複数の仮想レーンのそれぞれで送信するパケットが消費する帯域幅を測定する。仮想レーンには、所定のVL優先度およびネットワーク帯域幅の割り当て分が対応付けられている。処理630において、帯域幅の測定値とネットワーク帯域幅の割り当て分との比較に基づいてVL優先度を調整する。この調整には、帯域幅の測定値がネットワーク帯域幅の割り当て分を超えている場合、ある範囲内の優先度(事前に定められるとしてよい)から選択される最低値までVL優先度を下げることが含まれるとしてよい。処理640において、調整後のVL優先度に基づいてパケットを送信する。
上記の説明では、システムアーキテクチャおよび方法の例も記載した。本開示は変形が可能である。ホストプロセッサ206は、1または複数のプロセッサコアを含むとしてよく、システムソフトウェアを実行するよう構成されているとしてよい。システムソフトウェアは、例えば、オペレーティングシステムコード(例えば、OSカーネルコード)およびローカルエリアネットワーク(LAN)ドライバコードを含むとしてよい。LANドライバコードは、ネットワークコントローラ204の動作を少なくとも部分的に制御するよう構成されているとしてよい。システムメモリは、ネットワークコントローラ204が送受信する1または複数のデータパケットを格納するよう構成されているI/Oメモリバッファを含むとしてよい。チップセット回路は概して、プロセッサ、ネットワークコントローラ204およびシステムメモリ208の間の通信を制御する「ノースブリッジ」回路(不図示)を含むとしてよい。
ノード102および/またはリンクパートナー122または126はさらに、システムリソースを管理し、例えば、ノード102で実行されているタスクを制御するオペレーティングシステム(OS、不図示)を含むとしてよい。OSは、他のオペレーティングシステムも利用され得るが、例えば、Microsoft Windows(登録商標)、HP−UX、Linux(登録商標)またはUNIX(登録商標)を用いて実装されるとしてよい。一部の実施形態において、OSに代えて仮想マシンモニタ(またはハイパーバイザ)を利用するとしてよい。仮想マシンモニタは、1または複数の処理ユニットで実行されるさまざまなオペレーティングシステム(仮想マシン)に対して下位ハードウェアについての抽象化レイヤを提供し得る。オペレーティングシステムおよび/または仮想マシンは、1または複数のプロトコルスタックを実装するとしてよい。プロトコルスタックは1または複数のプログラムを実行してパケットを処理するとしてよい。プロトコルスタックの例として、ネットワークを介して送受信するパケットを取り扱う(例えば、処理または生成する)ための1または複数のプログラムを含むTCP/IP(トランスポートコントロールプロトコル/インターネットプロトコル)プロトコルスタックが挙げられる。プロトコルスタックは、これに代えて、例えば、TCPオフロードエンジンおよび/またはネットワークコントローラ204等の専用サブシステムで構成されるとしてもよい。TCPオフロードエンジン回路は、ホストのCPUおよび/またはソフトウェアを関与させることなく、例えば、パケット転送、パケット分割、パケット再構築、エラーチェック、送信確認応答、送信再試行等を実施するように構成されているとしてよい。
システムメモリ208は、半導体ファームウェアメモリ、プログラミング可能なメモリ、不揮発性メモリ、リードオンリーメモリ、電気的プログラミング可能なメモリ、ランダムアクセスメモリ、フラッシュメモリ、磁気ディスクメモリおよび/または光ディスクメモリといった種類のメモリのうち1または複数を含むとしてよい。これに加えて、または、これに代えて、システムメモリは、他のおよび/または後発の種類のコンピュータ可読メモリを含むとしてよい。
本明細書で説明した処理の実施形態は、1または複数のプロセッサによって実行されると方法を実施する命令を、個別または組み合わせて格納している1または複数の有形のコンピュータ可読記憶媒体を備えるシステムで実装され得る。プロセッサは、例えば、ネットワークコントローラ204内の処理ユニットおよび/またはプログラミング可能な回路、システムプロセッサ206および/または他の処理ユニットまたはプログラミング可能な回路を含むとしてよい。このため、本明細書で説明する方法に応じた処理は、複数の異なる物理的な場所にある処理構造等、複数の物理デバイス間に分散していることが意図されている。ストレージデバイは、任意の種類の有形のストレージデバイス、非一時的ストレージデバイス、例えば、任意の種類のディスク、例えば、フロッピー(登録商標)ディスク、光ディスク、コンパクトディスクリードオンリーメモリ(CD−ROM)、コンパクトディスクリライタブル(CD−RW)および光磁気ディスク、半導体デバイス、例えば、リードオンリーメモリ(ROM)、ダイナミックRAMおよびスタティックRAM等のランダムアクセスメモリ(RAM)、消去可能プログラミング可能リードオンリーメモリ(EPROM)、電気的消去可能プログラミング可能リードオンリ―メモリ(EEPROM),フラッシュメモリ、磁気カードまたは光カード、または、電子命令を格納するのに適した任意の種類のストレージデバイスを含むとしてよい。
本明細書で用いる場合、「モジュール」は、単独または任意の組み合わせで、回路および/またはコードおよび/または命令セット(例えば、ソフトウェア、ファームウェア等)を含むとしてよい。「回路(circuitry、circuit)」という用語は、本明細書の任意の実施形態で用いられる場合、例えば、単独または任意の組み合わせで、ハードワイヤード回路、プログラミング可能な回路、ステートマシン回路および/またはプログラミング可能な回路が実行する命令を格納しているファームウェアを含むとしてよい。回路は、集積回路チップ等の集積回路として具現化されるとしてよい。このため、ネットワークコントローラ(またはネットワークノードまたはネットワークスイッチ)は、スタンドアロン集積回路として具現化されるか、または、プロセッサまたはCPUをさらに含み得る集積回路に複数のコンポーネントの1つとして組み込まれるとしてよい。一部の実施形態において、ネットワークコントローラまたは他のシステムのさまざまなコンポーネント、回路およびモジュールは、システムオンチップ(SoC)アーキテクチャで組み合わせるとしてよい。SoCは、サーバシステムまたはCPUの一部として含まれるとしてよい。
このため、本開示は、イーサネット(登録商標)ネットワーク通信を改善することが可能なシステム、デバイス、方法およびコンピュータ可読媒体を提供する。以下に記載する例は、さらなる実施形態に関する。
例1によると、1または複数の他のネットワークノードと通信するネットワークコントローラが提供される。ネットワークコントローラは、所定のVL優先度およびネットワーク帯域幅の割り当て分が対応付けられている複数の仮想レーン(VL)で複数のパケットを送信するよう構成されている送信回路と、複数のVLで送信される複数のパケットが消費する帯域幅を測定するよう構成されている帯域幅モニタリングモジュールと、帯域幅の測定値とネットワーク帯域幅の割り当て分との比較に基づき、VL優先度を調整するよう構成されているアービタモジュールとを備えるとしてよい。送信回路は、調整されたVL優先度に基づき複数のパケットを送信する。
例2は、例1の主題を含むとしてよく、VL優先度の調整は、帯域幅の測定値がネットワーク帯域幅の割り当て分を超えている場合、ある範囲内の複数の優先度から選択される最低値までVL優先度を下げることを含む。
例3は、例1および2の主題を含むとしてよく、VL優先度の調整は、帯域幅の測定値がネットワーク帯域幅の割り当て分を超えている場合、VLにおける送信を禁止することを含む。
例4は、例1−3の主題を含むとしてよく、さらに、第1の仮想レーンでの複数のパケットの送信を中断して、第2の仮想レーンで複数のパケットを送信するプリエンプションモジュールを含む。第2の仮想レーンは、特定されたレイテンシ感度に対応付けられている。
例5は、例1−4の主題を含むとしてよく、中断される第1の仮想レーンの複数のパケットの優先度は、送信される第2の仮想レーンの複数のパケットの優先度よりも低い。
例6は、例1−5の主題を含むとしてよく、プリエンプションモジュールはさらに、中断されたパケットの残りのフラグメントの送信を再開する。
例7は、例1−6の主題を含むとしてよく、複数のパケットのうち第2のパケットにおいてフローコントロールデジットを使い果たすと、複数のパケットのうち第1のパケットを第2のパケットにインターリーブするインターリーブモジュールをさらに備える。
例8は、例1−7の主題を含むとしてよく、複数の仮想レーンのそれぞれにはトラフィッククラスが対応付けられている。
例9aは、例1−8の主題を含むとしてよく、コントローラはネットワークファブリックスイッチで用いられ、コントローラは、ネットワークファブリックのファブリックマネージャから仮想レーン構成情報を受信し、仮想レーン構成情報は、所定のVL優先度、ネットワーク帯域幅の割り当て分、および、レイテンシ感度を含む。
例9bは、例1−8の主題を含むとしてよく、ネットワークコントローラが、さらにプロセッサを有するネットワークノードで用いられ、ネットワークノードはシステムオンチップ(SoC)で組み込まれる。
例10によると、改善されたネットワーク通信のための方法が提供される。当該方法は、所定のVL優先度およびネットワーク帯域幅の割り当て分が対応付けられている複数の仮想レーン(VL)で送信される複数のパケットが消費する帯域幅を測定する段階と、帯域幅の測定値とネットワーク帯域幅の割り当て分との比較に基づきVL優先度を調整する段階と、調整されたVL優先度に基づいて複数のパケットを送信する段階とを備えるとしてよい。
例11は、例10の主題を含むとしてよく、調整する段階はさらに、帯域幅の測定値がネットワーク帯域幅の割り当て分を超えている場合、ある範囲内の複数の優先度から選択される最低値までVL優先度を下げる段階を有する。
例12は、例10および11の主題を含むとしてよく、調整する段階はさらに、帯域幅の測定値がネットワーク帯域幅の割り当て分を超えている場合、VLにおける送信を禁止する段階を有する。
例13は、例10−12の主題を含むとしてよく、第1の仮想レーンでの複数のパケットの送信を中断して、第2の仮想レーンで複数のパケットを送信する段階をさらに備える。第2の仮想レーンは、特定されたレイテンシ感度が対応付けられている。
例14は、例10−13の主題を含むとしてよく、中断される第1の仮想レーンの複数のパケットの優先度は、送信される第2の仮想レーンの複数のパケットの優先度よりも低い。
例15は、例10−14の主題を含むとしてよく、中断されたパケットの残りのフラグメントの送信を再開する段階をさらに備える。
例16は、例10−15の主題を含むとしてよく、複数のパケットのうち第2のパケットにおいてフローコントロールデジットを使い果たすと、複数のパケットのうち第1のパケットを第2のパケットにインターリーブする段階をさらに備える。
例17は、例10−16の主題を含むとしてよく、複数の仮想レーンのそれぞれにトラフィッククラスを対応付ける段階をさらに備える。
例18は、例10−17の主題を含むとしてよく、ネットワークのネットワークファブリックマネージャから仮想レーン構成情報を受信する段階をさらに備える。仮想レーン構成情報は、所定のVL優先度、ネットワーク帯域幅の割り当て分、および、レイテンシ感度を含む。
例19によると、複数の命令を格納している少なくとも1つのコンピュータ可読記憶媒体が提供される。当該複数の命令は、プロセッサが実行すると、ネットワーク通信を改善するべく以下の処理が実行される。上記の処理は、所定のVL優先度およびネットワーク帯域幅の割り当て分に対応付けられている複数の仮想レーン(VL)で送信される複数のパケットが消費する帯域幅を測定することと、帯域幅の測定値とネットワーク帯域幅の割り当て分との比較に基づきVL優先度を調整することと、調整されたVL優先度に基づいて複数のパケットを送信することとを含むとしてよい。
例20は、例19の主題を含むとしてよく、調整することはさらに、帯域幅の測定値がネットワーク帯域幅の割り当て分を超えている場合、ある範囲内の複数の優先度から選択される最低値までVL優先度を下げることを含む。
例21は、例19および20の主題を含むとしてよく、調整することはさらに、帯域幅の測定値がネットワーク帯域幅の割り当て分を超えている場合、VLにおける送信を禁止することを含む。
例22は、例19−21の主題を含むとしてよく、第1の仮想レーンでの複数のパケットの送信を中断して、第2の仮想レーンで複数のパケットを送信することをさらに含む。第2の仮想レーンには、特定されたレイテンシ感度が対応付けられている。
例23は、例19−22の主題を含むとしてよく、中断される第1の仮想レーンの複数のパケットの優先度は、送信される第2の仮想レーンの複数のパケットの優先度よりも低い。
例24は、例19−23の主題を含むとしてよく、中断されたパケットの残りのフラグメントの送信を再開することをさらに含む。
例25は、例19−24の主題を含むとしてよく、複数のパケットのうち第2のパケットにおいてフローコントロールデジットを使い果たすと、複数のパケットのうち第1のパケットを第2のパケットにインターリーブすることをさらに含む。
例26は、例19−25の主題を含むとしてよく、複数の仮想レーンのそれぞれにトラフィッククラスを対応付けることをさらに含む。
例27は、例19−26の主題を含むとしてよく、ネットワークのネットワークファブリックマネージャから仮想レーン構成情報を受信することをさらに含む。仮想レーン構成情報は、所定のVL優先度、ネットワーク帯域幅の割り当て分、および、レイテンシ感度を含む。
例28によると、改善されたネットワーク通信のためのシステムが提供される。当該システムは、所定のVL優先度およびネットワーク帯域幅の割り当て分に対応付けられている複数の仮想レーン(VL)で送信される複数のパケットが消費する帯域幅を測定する手段と、帯域幅の測定値とネットワーク帯域幅の割り当て分との比較に基づきVL優先度を調整する手段と、調整されたVL優先度に基づいて複数のパケットを送信する手段とを備えるとしてよい。
例29は、例28の主題を含むとしてよく、調整する手段はさらに、帯域幅の測定値がネットワーク帯域幅の割り当て分を超えている場合、ある範囲内の優先度から選択される最低値までVL優先度を下げる手段を有する。
例30は、例28および29の主題を含むとしてよく、調整する手段はさらに、帯域幅の測定値がネットワーク帯域幅の割り当て分を超えている場合、VLにおける送信を禁止する手段を有する。
例31は、例28−30の主題を含むとしてよく、第1の仮想レーンでの複数のパケットの送信を中断して、第2の仮想レーンで複数のパケットを送信する手段をさらに備える。第2の仮想レーンには、特定されたレイテンシ感度が対応付けられている。
例32は、例28−31の主題を含むとしてよく、中断される第1の仮想レーンの複数のパケットの優先度は、送信される第2の仮想レーンの複数のパケットの優先度よりも低い。
例33は、例28−32の主題を含むとしてよく、中断されたパケットの残りのフラグメントの送信を再開する手段をさらに備える。
例34は、例28−33の主題を含むとしてよく、複数のパケットのうち第2のパケットにおいてフローコントロールデジットを使い果たすと、複数のパケットのうち第1のパケットを第2のパケットにインターリーブする手段をさらに備える。
例35は、例28−34の主題を含むとしてよく、複数の仮想レーンのそれぞれにトラフィッククラスを対応付ける手段をさらに備える。
例36は、例28−35の主題を含むとしてよく、ネットワークのネットワークファブリックマネージャから仮想レーン構成情報を受信する手段をさらに備える。仮想レーン構成情報は、所定のVL優先度、ネットワーク帯域幅の割り当て分、および、レイテンシ感度を含む。
本明細書で用いた用語および表現は、説明のための用語として用いられており、限定のためではない。これらの用語および表現を利用する際、図示および記載した特徴の均等物(またはその一部)を排除することを意図したものではなく、請求項の範囲内でさまざまな変形が可能であると考えられたい。本明細書ではさまざまな特徴、側面および実施形態を説明してきた。記載した特徴、側面および実施形態は、当業者であれば理解するであろうが、互いに組み合わせることが可能であり、変更および変形が可能である。このため、本開示はこのような組み合わせ、変更および変形を含むものと考えるべきである。

Claims (28)

  1. 1または複数の他のネットワークノードと通信するネットワークコントローラであって、
    所定のVL優先度およびネットワーク帯域幅の割り当て分が対応付けられている複数の仮想レーン(複数のVL)で複数のパケットを送信する送信回路と、
    前記複数のVLで送信される複数のパケットが消費する帯域幅を測定する帯域幅モニタリングモジュールと、
    前記帯域幅の測定値と前記ネットワーク帯域幅の割り当て分との比較に基づき、前記VL優先度を調整するアービタモジュールであり、前記アービタモジュールは、それぞれに対応付けられている前記VL優先度を有するVLの間でアービトレーションを実行する複数のアービタサブモジュールを含む、アービタモジュールと、
    を備え、
    前記VL優先度の調整は、前記帯域幅の測定値が前記ネットワーク帯域幅の割り当て分を超えている場合、事前に定められた範囲内の複数の優先度から選択される最低値まで前記VL優先度を下げることを含み、
    前記送信回路は、前記アービトレーションの結果選択されたVLのうちから調整された前記VL優先度に基づいて選択されるVLで前記複数のパケットを送信する
    ネットワークコントローラ。
  2. 前記複数のVLのそれぞれには一の帯域幅モニタリンググループが割り当てられ、
    前記VL優先度の調整は、複数の帯域幅モニタリンググループのそれぞれに割り当てられているVLの間でそれぞれ追加のアービトレーションを行うことにより挙げられる各1つのVLを、該VLが有するVL優先度に対応するアービタサブモジュールに提供することを含む
    請求項1に記載のネットワークコントローラ。
  3. 前記VL優先度の調整は、前記帯域幅の測定値が前記ネットワーク帯域幅の割り当て分を超えている場合、前記複数のVLにおける送信を禁止するべく前記複数のVLをアービトレーションの対象外とすることを含む
    請求項1又は2に記載のネットワークコントローラ。
  4. 第1の仮想レーンでの前記複数のパケットの送信を中断して、第2の仮想レーンで複数のパケットを送信するプリエンプションモジュールをさらに備え、
    前記第2の仮想レーンには、特定されたレイテンシ感度が対応付けられている
    請求項1から3のいずれか一項に記載のネットワークコントローラ。
  5. 中断される前記第1の仮想レーンの前記複数のパケットの優先度は、送信される前記第2の仮想レーンの前記複数のパケットの優先度よりも低い
    請求項4に記載のネットワークコントローラ。
  6. 前記プリエンプションモジュールはさらに、中断された前記複数のパケットの残りのフラグメントの送信を再開する
    請求項4に記載のネットワークコントローラ。
  7. 前記複数のパケットのうち第2のパケットにおいてフローコントロールデジットを使い果たすと、前記複数のパケットのうち第1のパケットを前記第2のパケットにインターリーブするインターリーブモジュールをさらに備える
    請求項1から3のいずれか一項に記載のネットワークコントローラ。
  8. 前記複数の仮想レーンのそれぞれにはトラフィッククラスが対応付けられている
    請求項1から3のいずれか一項に記載のネットワークコントローラ。
  9. 前記ネットワークコントローラはネットワークファブリックスイッチで用いられ、前記ネットワークコントローラは、ネットワークのファブリックマネージャから仮想レーン構成情報を受信し、前記仮想レーン構成情報は、前記所定のVL優先度、前記ネットワーク帯域幅の割り当て分、および、前記レイテンシ感度を含む
    請求項4に記載のネットワークコントローラ。
  10. 前記ネットワークコントローラが、さらにプロセッサを有するネットワークノードで用いられ、前記ネットワークノードはシステムオンチップ(SoC)で組み込まれる
    請求項1から3のいずれか一項に記載のネットワークコントローラ。
  11. 改善されたネットワーク通信のための方法であって、
    所定のVL優先度およびネットワーク帯域幅の割り当て分が対応付けられている複数の仮想レーン(複数のVL)で送信される複数のパケットが消費する帯域幅を測定する段階と、
    前記帯域幅の測定値と前記ネットワーク帯域幅の割り当て分との比較に基づき、前記VL優先度を調整する段階であり、前記調整する段階は、前記VL優先度として割り当て可能な複数の優先度のそれぞれについて、対応する前記VL優先度を有するVLの間でアービトレーションを実行する段階を有する、段階と、
    前記アービトレーションの結果選択されたVLのうちから調整された前記VL優先度に基づいて選択されるVLで前記複数のパケットを送信する段階と
    を備え、
    前記調整する段階はさらに、前記帯域幅の測定値が前記ネットワーク帯域幅の割り当て分を超えている場合、事前に定められた範囲内の複数の優先度から選択される最低値まで前記VL優先度を下げる段階を有する方法。
  12. 前記複数のVLのそれぞれには一の帯域幅モニタリンググループが割り当てられ、
    前記調整する段階はさらに複数の帯域幅モニタリンググループのそれぞれに割り当てられているVLの間でそれぞれ追加のアービトレーションを行うことにより各1つのVLを挙げる段階を有する
    請求項11に記載の方法。
  13. 前記調整する段階はさらに、前記帯域幅の測定値が前記ネットワーク帯域幅の割り当て分を超えている場合、前記複数のVLにおける送信を禁止するべく前記複数のVLをアービトレーションの対象外とする段階を有する
    請求項11又は12に記載の方法。
  14. 第1の仮想レーンでの前記複数のパケットの送信を中断して、第2の仮想レーンで複数のパケットを送信する段階をさらに備え、
    前記第2の仮想レーンには、特定されたレイテンシ感度が対応付けられている
    請求項11から13のいずれか一項に記載の方法。
  15. 中断される前記第1の仮想レーンの前記複数のパケットの優先度は、送信される前記第2の仮想レーンの前記複数のパケットの優先度よりも低い
    請求項14に記載の方法。
  16. 中断された前記複数のパケットの残りのフラグメントの送信を再開する段階をさらに備える
    請求項14に記載の方法。
  17. 前記複数のパケットのうち第2のパケットにおいてフローコントロールデジットを使い果たすと前記複数のパケットのうち第1のパケットを前記第2のパケットにインターリーブする段階をさらに備える
    請求項11から13のいずれか一項に記載の方法。
  18. ネットワークのネットワークファブリックマネージャから仮想レーン構成情報を受信する段階をさらに備え、
    前記仮想レーン構成情報は、前記所定のVL優先度、前記ネットワーク帯域幅の割り当て分、および、前記レイテンシ感度を含む
    請求項14に記載の方法。
  19. プログラムであって、コンピュータが実行すると、改善されたネットワーク通信のための複数の処理が実行され、前記複数の処理は、
    所定のVL優先度およびネットワーク帯域幅の割り当て分が対応付けられている複数の仮想レーン(複数のVL)で送信される複数のパケットが消費する帯域幅を測定することと、
    前記帯域幅の測定値と前記ネットワーク帯域幅の割り当て分との比較に基づき前記VL優先度を調整することであり、前記調整することはさらに、前記VL優先度として割り当て可能な複数の優先度のそれぞれについて、対応する前記VL優先度を有するVLの間でアービトレーションを実行することを含む、前記調整することと、
    前記アービトレーションの結果選択されたVLのうちから調整された前記VL優先度に基づいて選択されるVLで前記複数のパケットを送信することと
    を含み、
    前記調整することはさらに、前記帯域幅の測定値が前記ネットワーク帯域幅の割り当て分を超えている場合、事前に定められた範囲内の複数の優先度から選択される最低値まで前記VL優先度を下げることを含むプログラム。
  20. 前記複数のVLのそれぞれには一の帯域幅モニタリンググループが割り当てられ、
    前記調整することはさらに、複数の帯域幅モニタリンググループのそれぞれに割り当てられているVLの間でそれぞれ追加のアービトレーションを行うことにより各1つのVLを挙げることを含む
    請求項19に記載のプログラム。
  21. 前記調整することはさらに、前記帯域幅の測定値が前記ネットワーク帯域幅の割り当て分を超えている場合、前記複数のVLにおける送信を禁止するべくアービトレーションの対象外とすることを含む
    請求項19又は20に記載のプログラム。
  22. 第1の仮想レーンでの前記複数のパケットの送信を中断して、第2の仮想レーンで複数のパケットを送信することをさらに含み、前記第2の仮想レーンには、特定されたレイテンシ感度が対応付けられている
    請求項19から21のいずれか一項に記載のプログラム。
  23. 中断された前記第1の仮想レーンの前記複数のパケットの優先度は、送信される前記第2の仮想レーンの前記複数のパケットの優先度よりも低い
    請求項22に記載のプログラム。
  24. 中断された前記複数のパケットの残りのフラグメントの送信を再開することをさらに含む
    請求項22に記載のプログラム。
  25. 前記複数のパケットのうち第2のパケットにおいてフローコントロールデジットを使い果たすと、前記複数のパケットのうち第1のパケットを前記第2のパケットにインターリーブすることをさらに含む
    請求項19から21のいずれか一項に記載のプログラム。
  26. ネットワークのネットワークファブリックマネージャから仮想レーン構成情報を受信することをさらに含み、
    前記仮想レーン構成情報は、前記所定のVL優先度、前記ネットワーク帯域幅の割り当て分、および、前記レイテンシ感度を含む
    請求項22に記載のプログラム。
  27. 請求項11から18のいずれか一項に記載の方法を実行するための手段を備えるシステムであって、改善されたネットワーク通信のためのシステム。
  28. 請求項19から26のいずれか一項に記載のプログラムを格納するコンピュータ可読記憶媒体。
JP2016552987A 2015-02-18 2015-02-18 優先度および帯域幅割り当てに基づくトラフィッククラスアービトレーション Active JP6420354B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/016442 WO2016133508A1 (en) 2015-02-18 2015-02-18 Traffic class arbitration based on priority and bandwidth allocation

Publications (2)

Publication Number Publication Date
JP2017509240A JP2017509240A (ja) 2017-03-30
JP6420354B2 true JP6420354B2 (ja) 2018-11-07

Family

ID=56692419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016552987A Active JP6420354B2 (ja) 2015-02-18 2015-02-18 優先度および帯域幅割り当てに基づくトラフィッククラスアービトレーション

Country Status (5)

Country Link
US (3) US10237191B2 (ja)
EP (1) EP3097671B1 (ja)
JP (1) JP6420354B2 (ja)
CN (1) CN106063206B (ja)
WO (1) WO2016133508A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10009291B1 (en) * 2015-12-21 2018-06-26 Amazon Technologies, Inc. Programmable switching fabric for dynamic path selection
US10341259B1 (en) 2016-05-31 2019-07-02 Amazon Technologies, Inc. Packet forwarding using programmable feature prioritization
US10574664B2 (en) * 2017-08-04 2020-02-25 Dish Network L.L.C. Device zoning in a network gateway device
US10860358B2 (en) * 2017-09-21 2020-12-08 Microsoft Technology Licensing, Llc Virtualizing datacenter bridging settings for virtual network adapters
DE102017130547A1 (de) 2017-12-19 2019-06-19 Volkswagen Aktiengesellschaft Verfahren zum Senden von Datenpaketen, Steuergerät und System mit Steuergerät
US11095560B2 (en) * 2017-12-30 2021-08-17 Intel Corporation Technologies for ethernet gateway congestion management in high-performance computing architectures
US10574755B2 (en) * 2018-03-28 2020-02-25 Wipro Limited Method and high performance computing (HPC) switch for optimizing distribution of data packets
DE102018206780A1 (de) 2018-05-02 2019-11-07 Volkswagen Aktiengesellschaft Verfahren und Computerprogramm zum Senden eines Datenpaketes, Verfahren und Computerprogramm zum Empfangen eines Datenpaketes, Kommunikationseinheit und Kraftfahrzeug mit Kommunikationseinheit
US11875183B2 (en) * 2018-05-30 2024-01-16 Texas Instruments Incorporated Real-time arbitration of shared resources in a multi-master communication and control system
US11258877B2 (en) 2018-07-26 2022-02-22 Netapp, Inc. Methods for managing workloads in a storage system and devices thereof
US11093425B2 (en) 2018-08-20 2021-08-17 Apple Inc. Systems and methods for arbitrating traffic in a bus
KR102588143B1 (ko) 2018-11-07 2023-10-13 삼성전자주식회사 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법
JP7206920B2 (ja) * 2019-01-08 2023-01-18 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US11283729B2 (en) * 2019-07-22 2022-03-22 Arm Limited Network-on-chip element placement
US11310169B2 (en) * 2019-07-22 2022-04-19 Arm Limited Network-on-chip topology generation
US11700206B2 (en) 2019-11-19 2023-07-11 Oracle International Corporation System and method for supporting RDMA bandwidth restrictions in a private fabric in a high performance computing environment
US11789807B1 (en) 2021-03-30 2023-10-17 Amazon Technologies, Inc. Autonomous management of communication links
US11909850B1 (en) * 2021-06-23 2024-02-20 Amazon Technologies, Inc. Dynamic improvement of a communication channel
US20230325086A1 (en) * 2022-04-07 2023-10-12 Apple Inc. Bandwidth-Aware Fabric Traffic Shaping
CN115473855B (zh) * 2022-08-22 2024-04-09 阿里巴巴(中国)有限公司 网络系统、数据传输方法
US20240073131A1 (en) * 2022-08-25 2024-02-29 Keysight Technologies, Inc. Methods, systems, and computer readable media for implementing routing path groups between emulated switches

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000041368A2 (en) * 1999-01-08 2000-07-13 Nortel Networks Limited Dynamic assignment of traffic classes to a priority queue in a packet forwarding device
US7010607B1 (en) * 1999-09-15 2006-03-07 Hewlett-Packard Development Company, L.P. Method for training a communication link between ports to correct for errors
JP2004534462A (ja) * 2001-07-05 2004-11-11 サンドバースト コーポレーション リンク帯域幅割り当て方法および装置
US7724760B2 (en) * 2001-07-05 2010-05-25 Broadcom Corporation Method and apparatus for bandwidth guarantee and overload protection in a network switch
US6950394B1 (en) * 2001-09-07 2005-09-27 Agilent Technologies, Inc. Methods and systems to transfer information using an alternative routing associated with a communication network
US7187688B2 (en) * 2002-06-28 2007-03-06 International Business Machines Corporation Priority arbitration mechanism
US7076569B1 (en) 2002-10-18 2006-07-11 Advanced Micro Devices, Inc. Embedded channel adapter having transport layer configured for prioritizing selection of work descriptors based on respective virtual lane priorities
US7525983B2 (en) * 2003-07-21 2009-04-28 Qlogic, Corporation Method and system for selecting virtual lanes in fibre channel switches
US7406092B2 (en) * 2003-07-21 2008-07-29 Qlogic, Corporation Programmable pseudo virtual lanes for fibre channel systems
US7188198B2 (en) * 2003-09-11 2007-03-06 International Business Machines Corporation Method for implementing dynamic virtual lane buffer reconfiguration
US7436845B1 (en) * 2004-06-08 2008-10-14 Sun Microsystems, Inc. Input and output buffering
US7983299B1 (en) * 2006-05-15 2011-07-19 Juniper Networks, Inc. Weight-based bandwidth allocation for network traffic
US8447872B2 (en) 2006-11-01 2013-05-21 Intel Corporation Load balancing in a storage system
US8144582B2 (en) * 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment
US9158565B2 (en) * 2011-02-22 2015-10-13 Fts Computertechnik Gmbh Predictable computing in virtualizated distributed computer systems based on partitioning of computation and communication resources
US9716659B2 (en) * 2011-03-23 2017-07-25 Hughes Network Systems, Llc System and method for providing improved quality of service over broadband networks
US9094345B2 (en) * 2012-01-31 2015-07-28 International Business Machines Corporation Reservation system for an ethernet network
US9160678B2 (en) * 2013-04-15 2015-10-13 International Business Machines Corporation Flow control credits for priority in lossless ethernet
CN105579991A (zh) * 2013-07-23 2016-05-11 慧与发展有限责任合伙企业 使用优先级进行工作保持的带宽保证
US9325641B2 (en) * 2014-03-13 2016-04-26 Mellanox Technologies Ltd. Buffering schemes for communication over long haul links
US9906454B2 (en) * 2014-09-17 2018-02-27 AppFormix, Inc. System and method for providing quality of service to data center applications by controlling the rate at which data packets are transmitted
KR102340683B1 (ko) * 2014-10-31 2021-12-20 오라클 인터내셔날 코포레이션 멀티-테넌트 클러스터 환경에서 파티션-인지 라우팅을 지원하기 위한 시스템 및 방법
US11805065B2 (en) * 2019-02-27 2023-10-31 Intel Corporation Scalable traffic management using one or more processor cores for multiple levels of quality of service

Also Published As

Publication number Publication date
US20210036959A1 (en) 2021-02-04
US11528229B2 (en) 2022-12-13
US20190230037A1 (en) 2019-07-25
US10715452B2 (en) 2020-07-14
CN106063206B (zh) 2020-09-22
EP3097671A4 (en) 2017-11-01
US20160373362A1 (en) 2016-12-22
EP3097671B1 (en) 2021-05-19
US10237191B2 (en) 2019-03-19
WO2016133508A1 (en) 2016-08-25
JP2017509240A (ja) 2017-03-30
CN106063206A (zh) 2016-10-26
EP3097671A1 (en) 2016-11-30

Similar Documents

Publication Publication Date Title
JP6420354B2 (ja) 優先度および帯域幅割り当てに基づくトラフィッククラスアービトレーション
US11962490B2 (en) Systems and methods for per traffic class routing
Birrittella et al. Intel® omni-path architecture: Enabling scalable, high performance fabrics
WO2021101602A1 (en) System and method for supporting use of forward and backward congestion notifications in a private fabric in a high performance computing environment
US8085801B2 (en) Resource arbitration
US9172655B1 (en) Systems and methods for quality of service in networks
TWI571076B (zh) 服務品質虛擬化之方法及裝置
EP3668027A1 (en) Using attribute vector for dynamic content-based attribute qos for networking and interconnect fabrics
US20190155645A1 (en) Distribution of network traffic to processor cores
US11552905B2 (en) Managing virtual output queues
CN116868553A (zh) 用于管理端点资源和拥塞缓解的数据中心网络上的动态网络接收器驱动的数据调度
US8004991B1 (en) Method and system for processing network information
US9154569B1 (en) Method and system for buffer management
WO2022246710A1 (zh) 一种控制数据流传输的方法及通信装置
CN116647883A (zh) 增强型虚拟信道切换

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160920

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180803

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181011

R150 Certificate of patent or registration of utility model

Ref document number: 6420354

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