JP2019091483A - インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 - Google Patents
インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2019091483A JP2019091483A JP2019009655A JP2019009655A JP2019091483A JP 2019091483 A JP2019091483 A JP 2019091483A JP 2019009655 A JP2019009655 A JP 2019009655A JP 2019009655 A JP2019009655 A JP 2019009655A JP 2019091483 A JP2019091483 A JP 2019091483A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- linked list
- buffer
- packets
- memory
- 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
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 244
- 230000015654 memory Effects 0.000 title claims abstract description 156
- 238000000034 method Methods 0.000 title claims description 69
- 230000008093 supporting effect Effects 0.000 title claims description 34
- 239000004744 fabric Substances 0.000 claims description 41
- 238000012545 processing Methods 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 11
- 230000008685 targeting Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 9
- 230000000903 blocking effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 239000000835 fiber Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 102100027896 Cytochrome b-c1 complex subunit 7 Human genes 0.000 description 1
- 101710147953 Cytochrome b-c1 complex subunit 7 Proteins 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2871—Implementation details of single intermediate entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/06—Indexing scheme relating to groups G06F5/06 - G06F5/16
- G06F2205/064—Linked list, i.e. structure using pointers, e.g. allowing non-contiguous address segments in one logical buffer or dynamic buffer space allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/06—Indexing scheme relating to groups G06F5/06 - G06F5/16
- G06F2205/067—Bidirectional FIFO, i.e. system allowing data transfer in two directions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
この特許文書の開示の一部には、著作権保護の対象となるものが含まれている。著作権者は、特許商標庁の特許ファイルまたは記録に掲載された特許文書または特許開示の複製に対しては異議を唱えないが、その他の場合、すべての著作権を留保する。
本発明は、一般に、コンピュータシステムに関連し、特に、コンピューティング環境において、入力/出力(I/O)仮想化のサポートに関連する。
インフィニバンド(IB)技術は、クラウドコンピューティングファブリックの基盤として、その応用が増加しつつである。より大きなクラウドコンピューティングアーキテクチャが導入されるため、従来のネットワークおよびストレージに関連する性能上および管理上のボトルネックが重大な問題となっている。このような問題を対処することは、本発明の実施形態の一般的な意図である。
システムおよび方法は、コンピューティング環境において、入力/出力(I/O)仮想化をサポートすることができる。システムは、チップを含むことができる。このチップは、ネットワークファブリック上のサーバに関連付けられている。さらに、このチップは、複数のパケットバッファを含む外部メモリに関連付けられている。また、オンチップメモリは、物理ホストバスアダプタ(HBA)から受信したディスク読取データを含む1つ以上のパケットの状態を保存する。さらに、チップは、外部メモリ上の複数のパケットバッファ内の1つ以上のパケットをキューに入れ、1つ以上のパケットの状態に基づいて、外部メモリから1つ以上のパケットを読出し、1つ以上のパケットをネットワークファブリック上のサーバに送信するように動作する。
力(I/O)仮想化をサポートすることができる。システムは、メモリにおいて、空きバッファプールを備えることができる。I/O装置は、空きバッファプールを用いて、物理ホストバスアダプタ(HBA)から受信したディスク読取データを保存するように動作する。空きバッファプールは、2次元リンクリストおよび1次元リンクリストを含むことができる。2次元リンクリストの各エントリは、連続したメモリ位置で複数のパケットバッファを含み、1次元リンクリストの各エントリは、単一のパケットバッファを含む。
本発明は、限定することなく、例示として、添付の図面に示される。図面において、同様の参照番号は、同様の要素を標記する。本開示において、「一実施形態」または「1つの実施形態」または「いくつかの実施形態」を言及する場合、必ずしも同様の実施形態に
限定されず、少なくとも1つの実施形態を意味することに留意すべきである。
2つの異なるメモリインターフェイスに基づいて、IBファブリック上で、I/O仮想化をサポートすることができる。
本発明の一実施形態によれば、システムは、単一のメモリインターフェイスを用いて、
I/O仮想化をサポートする、たとえば入来トラフィックおよび送出トラフィックの両方のためにIBファブリック上に作成された異なる仮想HBA用の並列FCコンテキストを管理することができる。
ことを回避することができる。したがって、システムは、同一のデータおよび/またはコンテキストを複数回格納することを回避することができ、遅延を改善する。さらに、2つの異なるチップおよびメモリインターフェイスの代わりに、単一のチップおよびメモリインターフェイスを使用することは、システムのコストを低減することができる。
IOCB応答を送信することができる。
OCBリクエスト613用のコンテキスト612を開くことができる。
図8は、本発明の一実施形態に従って、複数の仮想ホストバスアダプタ(vHBA)を用いて、I/O仮想化をサポートすることを示す図である。図8に示すように、I/O装置800、たとえばFC/IBドメイン801を表すチップを用いて、入来トラフィック830を処理することができる。入来トラフィック830は、物理HBA803からIBファブリック上のサーバ802に転送された複数のパケット、たとえばパケット831〜839を含むことができる。
、複数のコンテキストをサポートすることを示す図である。図9に示すように、I/O装置、たとえばFC/IBドメイン900を表すチップは、たとえば、QP904のために物理HBA903上で複数のディスク読取命令を実行するために、単一のvHBA901内の複数のコンテキスト、たとえばコンテキストI 910およびコンテキストII 920を開くことができる。
あり得る。まず、パケットがキューに入れられ、必要に応じてパケットに関連付けられたIB命令が更新された場合に限り、外部メモリからパケットを読取りおよびパケットをホストに送信するように、読取ロジックを確保することができる。次に、複数のコンテキストをサポートするために、既にキューに入れられたパケットに関連付けられたIB命令を必要に応じて更新することができる。
られているチップを提供することができる。また、ステップ1102において、システムは、物理ホストバスアダプタ(HBA)から受信したディスク読取データを含む1つ以上のパケットの状態をオンチップメモリに保存することができる。また、ステップ1103において、システムは、外部メモリ上の複数のパケットバッファ内の1つ以上のパケットをキューに入れ、1つ以上のパケットの状態に基づいて、外部メモリから1つ以上のパケットを読出し、およびネットワークファブリック上のサーバに1つ以上のパケットを送信するように、チップを動作させることができる。
本発明の一実施形態によれば、システムは、ハイブリッドリンクリスト構造を用いて、仮想ホストバスアダプタ(vHBA)内の複数のコンテキストに関連付けられた入来トラフィックを処理することができる。このハイブリッドリンクリスト構造は、主要リンクリストおよび一時リンクリストを含むことができる。
ステムは、外部SDRAMメモリから以前に開かれたコンテキストに格納されたデータを読出すことができ、必要に応じて、コンテキストリスト末尾のIBヘッダ内の命令を更新することができる。たとえば、所定のコンテキストのためのディスク読取データがIB MTUよりも大きいときに、IBヘッダにキューに入れられた命令が「最初のRDMA書込」命令である場合、その命令を「RDMA書込専用」命令に変更することができ、IBヘッダにキューに入れられた命令が「中間のRDMA書込」命令である場合、その命令を「最後のRDMA書込」命令に変更することができる。
タの一時リンクリストをバッファポインタの主要リンクリストに合併するように、I/O装置を動作させることができる。
本発明の一実施形態によれば、ディスク読取データがHBAチップから送信されるときに、システムは、ディスク読取データを一体化メモリ構造内のさまざまなデータバッファに格納することができる。
ィスク読取IOCBリクエストを発行することができる。ディスク読取リクエストに要求されたバッファは、空きバッファプール1600に保留され、現在のコンテキストがFC/IBドメインによって解放されるまで、他の後続のリクエストに使用されない。
クは、1つのパケットが単一リンクリスト1720のキューに入れられたことを知ることができる。
に、インフィニバンド(IB)ファブリック上のサーバを動作させる。
ットを受信すると、外部メモリに格納されたディスク読取データを読出すステップをさらに含む。
送ユニット(MTU)パケットを受信すると、外部メモリに格納されたディスク読取データを読出すように動作する。
vHBAのために、単純リンクリストにおいてパケットバッファを保留するステップとをさらに含む。
限定されない。
Claims (63)
- コンピューティング環境において、入力/出力(I/O)仮想化をサポートするためのシステムであって、
ネットワークファブリック上のサーバに関連付けられたチップを備え、前記チップは、複数のパケットバッファを含む外部メモリに関連付けられており、
前記チップは、物理ホストバスアダプタ(HBA)から受信したディスク読取データを含む1つ以上のパケットの状態を保存するオンチップメモリを含み、
前記チップは、
前記外部メモリ上の前記複数のパケットバッファ内の前記1つ以上のパケットをキューに入れ、
前記1つ以上のパケットの状態に基づいて、前記外部メモリから前記1つ以上のパケットを読出し、および
前記1つ以上のパケットを前記ネットワークファブリック上の前記サーバに送信するように動作する、システム。 - 前記ネットワークファブリックは、インフィニバンド(IB)ファブリックであり、
前記サーバは、1つ以上のキューペア(QP)に関連付けられる、請求項1に記載システム。 - 前記複数のパケットバッファは、1つ以上のバッファリストに格納され、
各バッファリストは、前記サーバに関連付けられたキューペア(QP)に対応する、請求項2に記載システム。 - 前記チップは、1つ以上のIBヘッダとシーケンス番号とを前記物理HBAから受信した各パケットに追加するように動作する、請求項2または3に記載のシステム。
- 少なくとも1つのIBヘッダは、IB命令を含む、請求項4に記載のシステム。
- 前記IBファブリック内のキューペア(QP)をターゲティングする複数のパケットは、パケットシーケンス番号スペースを共有するように配置される、請求項2〜5のいずれか1項に記載のシステム。
- 前記サーバに関連付けられたQPのために、複数のディスク読取命令、リモートダイレクトメモリアクセス(RDMA)読取リクエストおよび送信命令を多重化することをサポートするように、複数のコンテキストが開かれる、請求項2〜6のいずれか1項に記載のシステム。
- 前記1つ以上のパケットの状態は、前記外部メモリに格納された前記1つ以上のパケットがすべてキューに入れられたことを示す、および/または、1つ以上の関連IB命令が更新されたことを示す、請求項1〜7のいずれか1項に記載のシステム。
- 前記オンチップメモリ内の各エントリは、2ビットの幅を有する、請求項1〜8のいずれか1項に記載のシステム。
- 前記オンチップメモリ内の各エントリの一方のビットは、関連IB命令を更新する必要があるか否かを示し、
他方のビットは、チップがキューに入れられたパケットを前記外部メモリから読出すことができるか否かを示す、請求項9に記載のシステム。 - コンピューティング環境において、効率的なパケット処理をサポートするための方法であって、
ネットワークファブリック上のサーバに関連付けられたチップを提供するステップを備え、前記チップは、複数のパケットバッファを含む外部メモリに関連付けられており、
物理ホストバスアダプタ(HBA)から受信したディスク読取データを含む1つ以上のパケットの状態をオンチップメモリ上に保存するステップとを含み、
前記チップは、
前記外部メモリ上の前記複数のパケットバッファ内の前記1つ以上のパケットをキューに入れ、
前記1つ以上のパケットの状態に基づいて、前記外部メモリから前記1つ以上のパケットを読出し、および
前記1つ以上のパケットを前記ネットワークファブリック上の前記サーバに送信するように動作する、方法。 - 前記ネットワークファブリックは、インフィニバンド(IB)ファブリックであり、
前記サーバは、1つ以上のキューペア(QP)に関連付けられる、請求項11に記載の方法。 - 前記複数のパケットバッファを1つ以上のバッファリストに格納するステップをさらに含み、
各バッファリストは、前記サーバに関連付けられたキューペア(QP)に対応する、請求項12に記載の方法。 - 1つ以上のIBヘッダとシーケンス番号とを前記物理HBAから受信した各パケットに追加するように、前記チップを構成するステップをさらに含む、請求項12または13に記載の方法。
- 少なくとも1つのIBヘッダは、IB命令を含む、請求項14に記載の方法。
- パケットシーケンス番号スペースを共有するように、前記IBファブリック内のキューペア(QP)をターゲティングする複数のパケットを配置するステップをさらに含む、請求項12〜15のいずれか1項に記載の方法。
- 前記サーバに関連付けられたQPのために、複数のディスク読取命令、リモートダイレクトメモリアクセス(RDMA)読取リクエストおよび送信命令を多重化することをサポートするように、複数のコンテキストを開くステップをさらに含む、請求項12〜16のいずれか1項に記載の方法。
- 前記外部メモリに格納された前記1つ以上のパケットがすべてキューに入れられたことを示すように、および/または、1つ以上の関連IB命令が更新されたことを示すように、前記1つ以上のパケットの状態を構成するステップをさらに含む、請求項11〜17のいずれか1項に記載の方法。
- 前記オンチップメモリ内の各エントリは、2ビットの幅を有し、
前記オンチップメモリ内の各エントリの一方のビットは、関連IB命令を更新する必要があるか否かを示し、
他方のビットは、チップがキューに入れられたパケットを前記外部メモリから読出すことができるか否かを示す、請求項11〜18のいずれか1項に記載の方法。 - 命令を格納する非一時的な機械読取可能記憶媒体であって、前記命令は、実行されると
、以下のステップをシステムに実行させ、当該以下のステップは、
ネットワークファブリック上のサーバに関連付けられたチップを提供するステップを含み、前記チップは、複数のパケットバッファを含む外部メモリに関連付けられており、
物理ホストバスアダプタ(HBA)から受信したディスク読取データを含む1つ以上のパケットの状態をオンチップメモリ上に保存するステップと、
前記外部メモリ上の前記複数のパケットバッファ内の前記1つ以上のパケットをキューに入れ、前記1つ以上のパケットの状態に基づいて、前記外部メモリから前記1つ以上のパケットを読出し、および前記1つ以上のパケットを前記ネットワークファブリック上の前記サーバに送信するように、前記チップを動作させるステップとを含む、非一時的な機械読取可能記憶媒体。 - コンピューティング環境において、I/O仮想化をサポートするためのシステムであって、
コンピューティング環境内の1つ以上の仮想ホストバスアダプタ(vHBA)に関連付けられた複数のパケットバッファを含む空きバッファプールを含み、前記vHBAの各々は、1つ以上のパケットバッファに指向するバッファポインタの主要リンクリストを前記空きバッファプールに保存し、
入力/出力(I/O)装置に関連付けられたオンチップメモリ上で定義されたコンテキストテーブルを含み、前記コンテキストテーブルは、ディスク読取操作のために、前記空きバッファプールから割当てられた1つ以上のパケットバッファに指向するバッファポインタの一時リンクリストを保存し、
前記I/O装置は、
ディスク読取操作を実行する物理ホストバスアダプタ(HBA)からすディスク読取データを受信すると、前記コンテキストテーブルを開き、
前記バッファポインタの一時リンクリストを更新し、および
前記コンテキストテーブルが閉じられると、前記バッファポインタの一時リンクリストを前記バッファポインタの主要リンクリストに合併するように動作する、システム。 - 前記I/O装置は、前記ディスク読取操作を開始するように、インフィニバンド(IB)ファブリック上のサーバを動作させる、請求項21に記載のシステム。
- 前記I/O装置は、IBヘッダとシーケンス番号とを前記物理HBAから受信した各パケットに追加する、請求項21または22に記載のシステム。
- 前記I/O装置は、完全メッセージまたはIB最大伝送ユニット(MTU)パケットを受信すると、前記外部メモリに格納されたディスク読取データを読出すように動作する、請求項21〜23のいずれか1項に記載のシステム。
- 各仮想HBAは、IBドメインにおいて、異なるパケットシーケンス番号(PSN)スペースを保留する、請求項21〜24のいずれか1項に記載のシステム。
- 前記I/O装置は、前記vHBAに関連付けられた異なるディスク読取操作のために、異なるコンテキストテーブルを保存する、請求項21〜25のいずれか1項に記載のシステム。
- コンテキストテーブルは、前記I/O装置が前記仮想HBAに関連付けられた別のコンテキストテーブルを開くと、閉じられる、請求項21〜26のいずれか1項に記載のシステム。
- 前記別のコンテキストテーブルは、前記空きバッファプールから割当てられた1つ以上
のパケットバッファに指向するバッファポインタの新たな一時リンクリストを保存する、請求項27に記載のシステム。 - 前記I/O装置は、前記仮想HBAが別のディスク読取操作からデータを受信すると、別のコンテキストテーブルを開く、請求項27または28に記載のシステム。
- 前記I/O装置は、前記仮想HBAが書込専用命令、RDMA書込最終命令、送信専用命令およびRDMA読取リクエスト命令のうち1つの命令を受信すると、別のコンテキストテーブルを開く、請求項27〜29のいずれか1項に記載のシステム。
- コンピューティング環境において、効率的なパケット処理をサポートするための方法であって、
前記コンピューティング環境内の1つ以上の仮想ホストバスアダプタ(vHBA)に関連付けられた複数のパケットバッファを含む空きバッファプールを提供するステップを含み、前記vHBAの各々は、1つ以上のパケットバッファに指向するバッファポインタの主要リンクリストを前記空きバッファプールに保存し、
入力/出力(I/O)装置に関連付けられたオンチップメモリにおいて、コンテキストテーブルを定義するステップを含み、前記コンテキストテーブルは、ディスク読取操作のために、前記空きバッファプールから割当てられた1つ以上のパケットバッファに指向するバッファポインタの一時リンクリストを保存し、
前記ディスク読取操作を実行する物理ホストバスアダプタ(HBA)からディスク読取データを受信すると、コンテキストテーブルを開き、
前記バッファポインタの一時リンクリストを更新し、および
前記コンテキストテーブルが閉じられると、前記バッファポインタの一時リンクリストを前記バッファポインタの主要リンクリストに合併するように、前記I/O装置を動作させるステップを含む、方法。 - 前記ディスク読取操作を開始するように、インフィニバンド(IB)ファブリック上のサーバを動作させるステップをさらに含む、請求項31に記載の方法。
- IBヘッダとシーケンス番号とを前記物理HBAから受信した各パケットに追加するステップをさらに含む、請求項31または32に記載の方法。
- 完全メッセージまたはIB最大伝送ユニット(MTU)パケットを受信すると、前記外部メモリに格納されたディスク読取データを読出すステップをさらに含む、請求項31〜33のいずれか1項に記載の方法。
- 異なるパケットシーケンス番号(PSN)スペースをIBドメインに保留するように、各仮想HBAを構成するステップをさらに含む、請求項31〜34のいずれか1項に記載の方法。
- 前記vHBAに関連付けられた異なるディスク読取操作のために、異なるコンテキストテーブルを保管するステップをさらに含む、請求項31〜35のいずれか1項に記載の方法。
- 前記I/O装置が前記仮想HBAに関連付けられた別のコンテキストテーブルを開くと、コンテキストテーブルを閉じるステップをさらに含む、請求項31〜36のいずれか1項に記載の方法。
- 前記空きバッファプールから割当てられた1つ以上のパケットバッファに指向するバッ
ファポインタの新たな一時リンクリストを保存するように、前記別のコンテキストテーブルを構成するステップをさらに含む、請求項37に記載の方法。 - 前記仮想HBAが別のディスク読取操作からデータ、または書込専用命令、RDMA書込最終命令、送信専用命令およびRDMA読取リクエスト命令のうち1つの命令を受信すると、別のコンテキストテーブルを開くステップをさらに含む、請求項37または38に記載の方法。
- 命令を格納する非一時的な機械読取可能記憶媒体であって、前記命令は、実行されると、以下のステップをシステムに実行させ、当該以下のステップは、
前記ネットワーク環境内の1つ以上の仮想ホストバスアダプタ(vHBA)に関連付けられた複数のパケットバッファを含む空きバッファプールを提供するステップを含み、前記vHBAの各々は、1つ以上のパケットバッファに指向するバッファポインタの主要リンクリストを前記空きバッファプールに保存し、
入力/出力(I/O)装置に関連付けられたオンチップメモリにおいて、コンテキストテーブルを定義するステップを含み、前記コンテキストテーブルは、ディスク読取操作のために、前記空きバッファプールから割当てられた1つ以上のパケットバッファに指向するバッファポインタの一時リンクリストを保存し、
前記ディスク読取操作を実行する物理ホストバスアダプタ(HBA)からディスク読取データを受信すると、コンテキストテーブルを開き、
前記バッファポインタの一時リンクリストを更新し、および
前記コンテキストテーブルが閉じられると、前記バッファポインタの一時リンクリストを前記バッファポインタの主要リンクリストに合併するように、前記I/O装置を動作させるステップとを含む、非一時的な機械読取可能記憶媒体。 - コンピューティング環境において、入力/出力(I/O)仮想化をサポートするためのシステムであって、
メモリ内の空きバッファプールを含み、前記空きバッファプールは、2次元リンクリストおよび1次元リンクリストを備え、
前記2次元リンクリストの各エントリは、連続したメモリ位置で複数のパケットバッファを含み、前記1次元リンクリストの各エントリは、単一のパケットバッファを含み、
I/O装置は、前記空きバッファプールを用いて、物理ホストバスアダプタ(HBA)から受信したディスク読取データを保存するように動作する、システム。 - 前記I/O装置は、前記ディスク読取操作を開始するように、インフィニバンド(IB)ファブリック上のサーバを動作させる、請求項41に記載のシステム。
- 前記I/O装置は、1つ以上のIBヘッダとシーケンス番号とを前記物理HBAから受信した各パケットに追加する、請求項41または42に記載のシステム。
- 前記I/O装置は、完全メッセージまたはIB最大伝送ユニット(MTU)パケットを受信すると、前記外部メモリに格納されたディスク読取データを読出すように動作する、請求項41〜43のいずれか1項に記載のシステム。
- 前記I/O装置は、1つ以上の仮想ホストバスアダプタ(vHBA)をサポートしており、
各vHBAは、IBドメインにおいて、異なるパケットシーケンス番号(PSN)スペースを保留する、請求項41〜44のいずれか1項に記載のシステム。 - 前記I/O装置は、パケットがリモートダイレクトメモリアクセス(RDMA)書込ト
ランザクションまたはRDMA読取リクエストトランザクションのいずれかを実行する場合、前記メモリにおいてこのパケットをキューに入れるように動作する、請求項41〜45のいずれか1項に記載のシステム。 - 前記I/O装置は、前記キューに入れられた前記パケットがRDMA書込トランザクション用のものである場合、前記2次元リンクリストからスーパーブロックを割当てるように動作する、請求項46に記載のシステム。
- 前記I/O装置は、前記キューに入れられた前記パケットがRDMA読取リクエストトランザクション用のものであり、且つ、前記スーパーブロックに1つ以上のパケットバッファが残されている場合、前記1次元リンクリストからパケットバッファを割当てるように動作する、請求項47に記載のシステム。
- 前記I/O装置は、前記キューに入れられた前記パケットがRDMA読取リクエストトランザクション用のものであり、且つ、前記スーパーブロックにパケットバッファが残されていない場合、前記2次元リンクリストからスーパーブロックを割当てるように動作する、請求項47に記載のシステム。
- 前記I/O装置は、前記vHBAのために、単純リンクリストにパケットバッファを保留するように動作する、請求項41〜49のいずれか1項に記載のシステム。
- ネットワーク環境において、効率的なパケット処理をサポートするための方法であって、
メモリに空きバッファプールを提供するステップを含み、前記空きバッファプールは、2次元リンクリストおよび1次元リンクリストを含み、
前記2次元リンクリストの各エントリが連続したメモリ位置で複数のパケットバッファを含み、および前記1次元リンクリストの各エントリが単一のパケットバッファを含むようにするステップを含み、
I/O装置を介して、前記空きバッファプールを用いて、物理ホストバスアダプタ(HBA)から受信したデータ読取ディスクを保存するステップを含む、方法。 - ディスク読取操作を開始するように、インフィニバンド(IB)ファブリック上のサーバを動作させるステップをさらに含む、請求項51に記載の方法。
- 1つ以上のIBヘッダとシーケンス番号とを前記物理HBAから受信した各パケットに追加するステップをさらに含む、請求項51または52に記載の方法。
- 完全メッセージまたはIB最大伝送ユニット(MTU)パケットを受信すると、前記外部メモリに格納されたディスク読取データを読出すステップをさらに含む、請求項51〜53のいずれか1項に記載の方法。
- 1つ以上の仮想ホストバスアダプタ(vHBA)をサポートするステップをさらに含み、
各vHBAは、IBドメインにおいて、異なるパケットシーケンス番号(PSN)スペースを保留する、請求項51〜54のいずれか1項に記載の方法。 - パケットがリモートダイレクトメモリアクセス(RDMA)書込トランザクションまたはRDMA読取リクエストトランザクションのいずれかを実行する場合、前記外部メモリにおいてこのパケットをキューに入れるステップをさらに含む、請求項51〜55のいずれか1項に記載の方法。
- 前記キューに入れられた前記パケットがRDMA書込トランザクション用のものである場合、前記2次元リンクリストからスーパーブロックを割当てるステップをさらに含む、請求項56に記載の方法。
- 前記キューに入れられた前記パケットがRDMA読取リクエストトランザクション用のものであり、且つ、前記スーパーブロックに1つ以上のパケットバッファが残されている場合、前記1次元リンクリストからパケットバッファを割当てるステップをさらに含む、請求項57に記載の方法。
- 前記キューに入れられた前記パケットがRDMA読取リクエストトランザクション用のものであり、且つ、前記スーパーブロックにパケットバッファが残されていない場合、前記2次元リンクリストからスーパーブロックを割当てるステップと、
前記vHBAのために、単純リンクリストにおいてパケットバッファを保留するステップとをさらに含む、請求項57に記載の方法。 - 命令を格納する非一時的な機械読取可能記憶媒体であって、前記命令は、実行されると、以下のステップをシステムに実行させ、当該以下のステップは、
メモリに空きバッファプールを提供するステップを含み、前記空きバッファプールは、2次元リンクリストおよび1次元リンクリストを含み、
前記2次元リンクリスト各エントリが連続したメモリ位置で複数のパケットバッファを含み、および前記1次元リンクリストの各エントリが単一のパケットバッファを含むようにするステップを含み、
I/O装置を介して、前記空きバッファプールを用いて、物理ホストバスアダプタ(HBA)から受信したデータ読取ディスクを保存するステップを含む、非一時的な機械読取可能記憶媒体。 - コンピューティング環境において、入力/出力(I/O)仮想化をサポートするためのシステムであって、
前記システムは、以下のシステム、すなわち、
(i)請求項1〜10のいずれか1項に記載のシステムと、
(ii)請求項21〜30のいずれか1項に記載のシステムと、
(iii)請求項41〜50のいずれか1項に記載のシステムとのうち、少なくとも2つを含む。 - 機械読取可能形式のプログラム命令を含むコンピュータプログラムであって、これらのプログラム命令は、コンピュータシステムによって実行されると、以下のステップを前記コンピュータシステムに実行させ、当該以下のステップは、
(i)請求項11〜19のいずれか1項に記載の方法と、
(ii)請求項31〜39のいずれか1項に記載のシステムと、
(iii)請求項51〜59のいずれか1項に記載のシステムとのうち少なくとも1つを含む。 - 機械読取可能形式で非一時的な記憶媒体上に格納されている請求項62に記載の前記コンピュータプログラムを含むコンピュータプログラム製品。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/097,009 | 2013-12-04 | ||
US14/096,987 | 2013-12-04 | ||
US14/096,987 US8898353B1 (en) | 2013-12-04 | 2013-12-04 | System and method for supporting virtual host bus adaptor (VHBA) over infiniband (IB) using a single external memory interface |
US14/096,949 US9104637B2 (en) | 2013-12-04 | 2013-12-04 | System and method for managing host bus adaptor (HBA) over infiniband (IB) using a single external memory interface |
US14/097,009 US9311044B2 (en) | 2013-12-04 | 2013-12-04 | System and method for supporting efficient buffer usage with a single external memory interface |
US14/096,949 | 2013-12-04 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016536668A Division JP6492083B2 (ja) | 2013-12-04 | 2014-10-21 | インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019091483A true JP2019091483A (ja) | 2019-06-13 |
JP6757808B2 JP6757808B2 (ja) | 2020-09-23 |
Family
ID=51894217
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016536668A Active JP6492083B2 (ja) | 2013-12-04 | 2014-10-21 | インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 |
JP2019009655A Active JP6757808B2 (ja) | 2013-12-04 | 2019-01-23 | インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 |
JP2019009654A Active JP6763984B2 (ja) | 2013-12-04 | 2019-01-23 | インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016536668A Active JP6492083B2 (ja) | 2013-12-04 | 2014-10-21 | インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019009654A Active JP6763984B2 (ja) | 2013-12-04 | 2019-01-23 | インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9311044B2 (ja) |
EP (1) | EP3077914B1 (ja) |
JP (3) | JP6492083B2 (ja) |
CN (1) | CN105793835B (ja) |
WO (1) | WO2015084506A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160026605A1 (en) * | 2014-07-28 | 2016-01-28 | Emulex Corporation | Registrationless transmit onload rdma |
CN109669788A (zh) * | 2018-12-10 | 2019-04-23 | 西安微电子技术研究所 | 面向直接内存访问互连通信的多核芯片的mpi实现方法 |
WO2020236277A1 (en) | 2019-05-23 | 2020-11-26 | Cray Inc. | System and method for facilitating tracer packets in a data-driven intelligent network |
CN112463654A (zh) * | 2019-09-06 | 2021-03-09 | 华为技术有限公司 | 一种带预测机制的cache实现方法 |
CN110968530B (zh) * | 2019-11-19 | 2021-12-03 | 华中科技大学 | 一种基于非易失性内存的键值存储***和内存访问方法 |
CN113608686B (zh) * | 2021-06-30 | 2023-05-26 | 苏州浪潮智能科技有限公司 | 一种远程内存直接访问方法及相关装置 |
CN117389733B (zh) * | 2023-10-25 | 2024-04-26 | 无锡众星微***技术有限公司 | 一种减少开关链开销的sas i/o调度方法和装置 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037096A1 (en) | 1995-04-07 | 2003-02-20 | Ruey Kao | Method and apparatus for the management of queue pointers by multiple processors in a digital communications network |
US5682553A (en) * | 1995-04-14 | 1997-10-28 | Mitsubishi Electric Information Technology Center America, Inc. | Host computer and network interface using a two-dimensional per-application list of application level free buffers |
FI991334A (fi) | 1999-06-10 | 2000-12-11 | Nokia Networks Oy | Menetelmä kaksisuuntaisen jonon toteuttamiseksi muistissa ja muistijär jestely |
US6594712B1 (en) * | 2000-10-20 | 2003-07-15 | Banderacom, Inc. | Inifiniband channel adapter for performing direct DMA between PCI bus and inifiniband link |
US7613821B1 (en) | 2001-07-16 | 2009-11-03 | Advanced Micro Devices, Inc. | Arrangement for reducing application execution based on a determined lack of flow control credits for a network channel |
US20030145012A1 (en) | 2002-01-31 | 2003-07-31 | Kurth Hugh R. | Shared resource virtual queues |
JP4088611B2 (ja) * | 2004-01-30 | 2008-05-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シングル・チップ・プロトコル・コンバーター |
US8145785B1 (en) | 2004-02-13 | 2012-03-27 | Habanero Holdings, Inc. | Unused resource recognition in real time for provisioning and management of fabric-backplane enterprise servers |
US9264384B1 (en) | 2004-07-22 | 2016-02-16 | Oracle International Corporation | Resource virtualization mechanism including virtual host bus adapters |
US20060193327A1 (en) | 2005-02-25 | 2006-08-31 | International Business Machines Corporation | System and method for providing quality of service in a virtual adapter |
US7386637B2 (en) | 2005-02-25 | 2008-06-10 | International Business Machines Corporation | System, method, and computer program product for a fully trusted adapter validation of incoming memory mapped I/O operations on a physical adapter that supports virtual adapters or virtual resources |
US20070136554A1 (en) | 2005-12-12 | 2007-06-14 | Giora Biran | Memory operations in a virtualized system |
US7783788B1 (en) | 2006-04-28 | 2010-08-24 | Huawei Technologies Co., Ltd. | Virtual input/output server |
US20080059686A1 (en) | 2006-08-31 | 2008-03-06 | Keith Iain Wilkinson | Multiple context single logic virtual host channel adapter supporting multiple transport protocols |
US7782869B1 (en) | 2007-11-29 | 2010-08-24 | Huawei Technologies Co., Ltd. | Network traffic control for virtual device interfaces |
US7711789B1 (en) | 2007-12-07 | 2010-05-04 | 3 Leaf Systems, Inc. | Quality of service in virtual computing environments |
JP4972670B2 (ja) | 2009-06-05 | 2012-07-11 | 株式会社日立製作所 | 仮想計算機システム、そのアクセス制御方法及び通信装置 |
JP4990940B2 (ja) | 2009-07-06 | 2012-08-01 | 株式会社日立製作所 | 計算機装置及びパス管理方法 |
US9973446B2 (en) * | 2009-08-20 | 2018-05-15 | Oracle International Corporation | Remote shared server peripherals over an Ethernet network for resource virtualization |
US8340120B2 (en) | 2009-09-04 | 2012-12-25 | Brocade Communications Systems, Inc. | User selectable multiple protocol network interface device |
US9389895B2 (en) | 2009-12-17 | 2016-07-12 | Microsoft Technology Licensing, Llc | Virtual storage target offload techniques |
US8458306B1 (en) | 2010-08-25 | 2013-06-04 | Oracle International Corporation | Coalescing change notifications in an I/O virtualization system |
US8935707B2 (en) * | 2011-05-16 | 2015-01-13 | Oracle International Corporation | System and method for providing a messaging application program interface |
US9021155B2 (en) | 2011-06-01 | 2015-04-28 | International Business Machines Corporation | Fibre channel input/output data routing including discarding of data transfer requests in response to error detection |
US8751701B2 (en) * | 2011-12-26 | 2014-06-10 | Mellanox Technologies Ltd. | Host channel adapter with pattern-type DMA |
CN102609215B (zh) * | 2012-04-11 | 2015-05-27 | 华为数字技术(成都)有限公司 | 数据处理方法及装置 |
US8898353B1 (en) | 2013-12-04 | 2014-11-25 | Oracle International Corporation | System and method for supporting virtual host bus adaptor (VHBA) over infiniband (IB) using a single external memory interface |
-
2013
- 2013-12-04 US US14/097,009 patent/US9311044B2/en active Active
-
2014
- 2014-10-21 JP JP2016536668A patent/JP6492083B2/ja active Active
- 2014-10-21 CN CN201480063821.8A patent/CN105793835B/zh active Active
- 2014-10-21 EP EP14796612.1A patent/EP3077914B1/en active Active
- 2014-10-21 WO PCT/US2014/061640 patent/WO2015084506A1/en active Application Filing
-
2019
- 2019-01-23 JP JP2019009655A patent/JP6757808B2/ja active Active
- 2019-01-23 JP JP2019009654A patent/JP6763984B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US20150154004A1 (en) | 2015-06-04 |
JP6763984B2 (ja) | 2020-09-30 |
JP2017501492A (ja) | 2017-01-12 |
EP3077914B1 (en) | 2018-12-26 |
US9311044B2 (en) | 2016-04-12 |
CN105793835B (zh) | 2018-09-07 |
WO2015084506A1 (en) | 2015-06-11 |
EP3077914A1 (en) | 2016-10-12 |
CN105793835A (zh) | 2016-07-20 |
JP6757808B2 (ja) | 2020-09-23 |
JP6492083B2 (ja) | 2019-03-27 |
JP2019091482A (ja) | 2019-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6757808B2 (ja) | インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 | |
CN111427808B (zh) | 用于管理存储设备和主机单元之间的通信的***和方法 | |
WO2018102967A1 (zh) | NVMe over Fabric架构中数据读写命令的控制方法、存储设备和*** | |
US7308523B1 (en) | Flow-splitting and buffering PCI express switch to reduce head-of-line blocking | |
US7275123B2 (en) | Method and apparatus for providing peer-to-peer data transfer within a computing environment | |
US11757796B2 (en) | Zero-copy processing | |
CN108701004A (zh) | 一种数据处理的***、方法及对应装置 | |
JP2017513096A (ja) | コンピュータ、制御デバイス及びデータ処理方法 | |
KR20210119529A (ko) | 스토리지 장치 컨텐츠를 스트리밍하는 시스템들 및 방법들 | |
US11822811B2 (en) | Method, electronic device and computer program product for processing data | |
US9727521B2 (en) | Efficient CPU mailbox read access to GPU memory | |
US7451259B2 (en) | Method and apparatus for providing peer-to-peer data transfer within a computing environment | |
US8898353B1 (en) | System and method for supporting virtual host bus adaptor (VHBA) over infiniband (IB) using a single external memory interface | |
CN117834561A (zh) | 基于spdk的网络i/o处理方法以及装置 | |
US9288163B2 (en) | Low-latency packet receive method for networking devices | |
US11099740B2 (en) | Method, apparatus and computer program product for managing storage device | |
CN111970213A (zh) | 排队*** | |
US10289550B1 (en) | Method and system for dynamic write-back cache sizing in solid state memory storage | |
CN106325377B (zh) | 外部设备扩展卡及输入输出外部设备的数据处理方法 | |
US9104637B2 (en) | System and method for managing host bus adaptor (HBA) over infiniband (IB) using a single external memory interface | |
KR20150048028A (ko) | 데이터 전송 관리 방법 | |
CN104714911A (zh) | 至少部分地提供数据的至少一部分可供处理的至少一个指示 | |
US9424227B2 (en) | Providing byte enables for peer-to-peer data transfer within a computing environment | |
US20240168876A1 (en) | Solving submission queue entry overflow using metadata or data pointers | |
JP2017162399A (ja) | 記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190214 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200609 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200717 |
|
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: 20200804 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200831 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6757808 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |