JP6517934B2 - スイッチ内のデータをバッファリングするための装置および方法 - Google Patents
スイッチ内のデータをバッファリングするための装置および方法 Download PDFInfo
- Publication number
- JP6517934B2 JP6517934B2 JP2017526669A JP2017526669A JP6517934B2 JP 6517934 B2 JP6517934 B2 JP 6517934B2 JP 2017526669 A JP2017526669 A JP 2017526669A JP 2017526669 A JP2017526669 A JP 2017526669A JP 6517934 B2 JP6517934 B2 JP 6517934B2
- Authority
- JP
- Japan
- Prior art keywords
- queue
- buffer
- switch
- point
- cue
- 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
Links
- 238000000034 method Methods 0.000 title claims description 84
- 230000003139 buffering effect Effects 0.000 title description 12
- 239000000872 buffer Substances 0.000 claims description 276
- 230000005540 biological transmission Effects 0.000 claims description 157
- 230000004044 response Effects 0.000 claims description 17
- 230000007246 mechanism Effects 0.000 claims description 12
- 230000003278 mimic effect Effects 0.000 claims description 9
- 238000007792 addition Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 230000015654 memory Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 239000004744 fabric Substances 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3036—Shared queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9036—Common buffer combined with individual queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
- H04L49/505—Corrective measures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
(項目1)
パケットをルーティングするためのスイッチであって、
複数のキューバッファと、
上記複数のキューバッファにそれぞれ関連付けられた複数のキューと、
共有バッファと、
上記複数のキューバッファと上記共有バッファとに連結されたキューポイントコントローラと、を備え、
上記キューポイントコントローラは、
上記複数のキューのうちの選択されたキューに宛てられたパケットの一部を送信ポイントから受信し、
上記選択されたキューに関連付けられた、上記複数のキューバッファのうちの選択されたキューバッファ内の利用可能な領域の量を判断し、
上記選択されたキューバッファ内の判断された上記利用可能な領域の量に基づいて、上記共有バッファの少なくとも一部を、上記選択されたキューに割り当て、
上記共有バッファの上記少なくとも一部は上記送信ポイントに不可視である、スイッチ。
(項目2)
上記選択されたキューバッファ内の判断された上記利用可能な領域の量に基づいて、上記共有バッファの少なくとも一部を、上記選択されたキューに割り当てることは、上記選択されたキューバッファ内の上記利用可能な領域の量が、利用可能な領域の閾値に等しいか、またはそれより小さいかに基づく、項目1に記載のスイッチ。
(項目3)
上記選択されたキューは、ネットワークの上記スイッチの1または複数の出力ポートに連結され、
上記パケットの上記一部は、上記1または複数の出力ポートのうちのある出力ポートに宛てられ、
上記キューポイントコントローラはさらに、
上記パケットの上記一部を上記共有バッファの上記少なくとも一部に格納し、
上記共有バッファの上記少なくとも一部が上記送信ポイントに対し不可視となり得るように、信号を上記送信ポイントに送信し、
上記信号は、
上記送信ポイントが、上記選択されたキューに関連付けられたクレジットカウンタをデクリメントすることを防止する、または
上記送信ポイントに、上記選択されたキューに関連付けられた上記クレジットカウンタをインクリメントさせる、項目1に記載のスイッチ。
(項目4)
上記共有バッファの上記少なくとも一部のサイズは、上記パケットのサイズに基づく、項目3に記載のスイッチ。
(項目5)
上記クレジットカウンタは、上記スイッチのクレジットベースフロー制御メカニズムの一部であり、
上記信号は、上記送信ポイントに対し、データが上記選択されたキューから移動されたことを示す、項目3に記載のスイッチ。
(項目6)
上記複数のキューバッファ、上記複数のキューおよび上記共有バッファは、キューポイントを形成し、予め定められた閾値は、上記送信ポイントと上記キューポイントとの間のラウンドトリップ送信時間に基づく、項目3に記載のスイッチ。
(項目7)
上記クレジットカウンタは、上記送信ポイントが上記選択されたキューバッファ内の利用可能な領域の量をモニタリングできるようにする送信ポイントクレジットカウンタであり、上記スイッチはさらに、上記選択されたキューに関連付けられたローカルクレジットカウンタを有し、
上記キューポイントコントローラはさらに、上記ローカルクレジットカウンタに、上記送信ポイントクレジットカウンタを模倣させて、上記キューポイントコントローラが、上記信号を上記送信ポイントに送信するときを判断できるようにする、項目3に記載のスイッチ。
(項目8)
上記キューポイントコントローラはさらに、
上記共有バッファの前に割り当てられた部分が必要かを判断し、
上記割り当てられた部分がこれ以上必要ではないとの判断に応答して、上記共有バッファの上記前に割り当てられた部分を解放する、項目7に記載のスイッチ。
(項目9)
上記共有バッファの上記前に割り当てられた部分がこれ以上必要ではないと判断することは、上記共有バッファの上記前に割り当てられた部分が空であることの指標、および、
上記選択されたキューバッファが空であることの指標、
上記共有バッファの前に割り当てられた別の部分が、予め定められた閾値より大きいか、またはそれに等しい利用可能な領域の量を有することの指標、または
上記共有バッファの前に割り当てられた別の部分が、ローカルカウンタの値に等しいか、またはそれより大きい利用可能な領域の量を有することの指標、に基づく、項目8に記載のスイッチ。
(項目10)
上記送信ポイントクレジットカウンタおよび上記ローカルクレジットカウンタは、上記スイッチのリセットに応答して、上記選択されたキューバッファのサイズにリセットされる、項目9に記載のスイッチ。
(項目11)
上記複数のキューバッファ、上記複数のキューおよび上記共有バッファは、キューポイントを形成し、上記送信ポイントは、上記スイッチの別のキューポイントである、項目1に記載のスイッチ。
(項目12)
上記複数のキューバッファ、上記複数のキューおよび上記共有バッファは、キューポイントを形成し、上記キューポイントは、上記スイッチのサブスイッチの一部である、項目1から11のいずれか一項に記載のスイッチ。
(項目13)
上記スイッチは、1または複数のプロセッサをさらに有する、システムオンチップ(SoC)である、項目1から11のいずれか一項に記載のスイッチ。
(項目14)
スイッチのキューポイントのキューポイントコントローラによって、パケットの少なくとも一部を送信ポイントから受信する段階と、
上記キューポイントコントローラによって、上記キューポイントのキューに関連付けられたキューバッファ内に上記パケットの上記少なくとも一部を格納する段階と、
上記キューポイントコントローラによって、上記キューバッファ内の利用可能な領域を判断する段階と、
上記キューポイントコントローラによって、上記キューバッファ内の上記利用可能な領域に基づいて、共有バッファの少なくとも一部を上記キューに割り当てる段階であって、上記共有バッファは、上記キューポイントの1または複数の追加のキューに関連付けられる、割り当てる段階と、
上記キューポイントコントローラによって、信号を上記送信ポイントに送信して、上記送信ポイントが上記キューに関連付けられたクレジットカウンタをデクリメントすることを防止する、または、上記送信ポイントに、上記キューに関連付けられた上記クレジットカウンタをインクリメントさせる段階と、を備える、スイッチを動作させる方法。
(項目15)
上記キューバッファ内の判断された上記利用可能な領域の量に基づいて割り当てる段階は、上記キューバッファ内の上記利用可能な領域の量が、利用可能な領域の予め定められた閾値に等しいか、またはそれより小さいかに基づく、項目14に記載の方法。
(項目16)
上記クレジットカウンタは、上記スイッチのクレジットベースフロー制御メカニズムの一部であり、
上記信号は、データが上記キューから移動されることを示す、項目15に記載の方法。
(項目17)
上記予め定められた閾値は、上記送信ポイントと上記キューポイントとの間のラウンドトリップ送信時間に基づく、項目15に記載の方法。
(項目18)
上記クレジットカウンタは、上記送信ポイントが上記キューバッファ内の利用可能な領域の量をモニタリングできるようにする送信ポイントクレジットカウンタであり、上記方法はさらに、
上記キューポイントコントローラによって、ローカルクレジットカウンタに、上記送信ポイントクレジットカウンタを模倣させる段階と、
上記キューポイントコントローラによって、上記ローカルクレジットカウンタの値に少なくとも部分的に基づいて、上記信号を上記送信ポイントに送信するときを判断する段階と、を備える、項目15から17のいずれか一項に記載の方法。
(項目19)
上記スイッチのリセットに応答して、上記ローカルクレジットカウンタを、上記キューバッファのサイズにリセットする段階をさらに備える、項目18に記載の方法。
(項目20)
1または複数の非一時的コンピュータ可読媒体であって、上記1または複数の非一時的コンピュータ可読媒体は自身に格納された命令を備え、上記命令は、スイッチのキューポイントのキューポイントコントローラに、上記キューポイントコントローラによる実行に応答して、
パケットの少なくとも一部を送信ポイントから受信させ、
上記キューポイントのキューに関連付けられたキューバッファ内に上記パケットの上記少なくとも一部を格納させ、
上記キューバッファ内の利用可能な領域の量に基づいて、共有バッファの少なくとも一部を上記キューに割り当てさせ、上記共有バッファは、上記キューポイントの1または複数の追加のキューに関連付けられており、
信号を上記送信ポイントに送信させ、上記送信ポイントが上記キューに関連付けられたクレジットカウンタをデクリメントすることを防止する、または、上記送信ポイントに、上記キューに関連付けられた上記クレジットカウンタをインクリメントさせる、コンピュータ可読媒体。
(項目21)
上記キューバッファ内の上記利用可能な領域の量に基づいて割り当てさせることは、上記キューバッファ内の上記利用可能な領域の量が、利用可能な領域の予め定められた閾値に等しいか、またはそれより小さいかに基づく、項目20に記載のコンピュータ可読媒体。
(項目22)
上記クレジットカウンタは、上記スイッチのクレジットベースフロー制御メカニズムの一部であり、
上記信号は、データが上記キューから移動されたことを示す、項目21に記載のコンピュータ可読媒体。
(項目23)
上記予め定められた閾値は、上記送信ポイントと上記キューポイントとの間のラウンドトリップ送信時間に基づく、項目21に記載のコンピュータ可読媒体。
(項目24)
上記クレジットカウンタは、上記送信ポイントが、上記キューバッファ内の利用可能な領域の量をモニタリングできるようにする送信ポイントクレジットカウンタであり、
上記命令は、上記キューポイントコントローラによる実行に応答して、さらに、上記キューポイントコントローラに、
ローカルクレジットカウンタに、上記送信ポイントクレジットカウンタを模倣させるようにさせ、
上記ローカルクレジットカウンタの値に少なくとも部分的に基づいて、上記信号を上記送信ポイントに送信するときを判断させる、項目21から23のいずれか一項に記載のコンピュータ可読媒体。
(項目25)
上記命令は、上記キューポイントコントローラによる実行に応答して、さらに、上記キューポイントコントローラに、
上記スイッチのリセットに応答して、上記ローカルクレジットカウンタを上記キューバッファのサイズにリセットさせる、項目24に記載のコンピュータ可読媒体。
Claims (30)
- パケットをルーティングするためのスイッチであって、
それぞれが固定サイズの複数のキューバッファにそれぞれ関連付けられた複数のキューと、
共有バッファと、
前記複数のキューバッファと前記共有バッファとに連結されたキューポイントコントローラと、を備え、
前記キューポイントコントローラは、
前記複数のキューのうちの選択されたキューに宛てられたパケットの一部を送信ポイントから受信し、
前記選択されたキューに関連付けられた、前記複数のキューバッファのうちの選択されたキューバッファ内の利用可能な領域の量を判断し、
前記選択されたキューバッファ内の判断された前記利用可能な領域の量に基づいて、前記共有バッファの少なくとも一部を、前記選択されたキューに割り当て、
前記送信ポイントは、前記選択されたキューバッファの固定サイズを知らされている、スイッチ。 - 前記キューポイントコントローラは、前記共有バッファの少なくとも一部が、前記選択されたキューに割り当てられると、前記送信ポイントに確認応答を送信する、請求項1に記載のスイッチ。
- 前記選択されたキューバッファ内の判断された前記利用可能な領域の量に基づいて、前記共有バッファの少なくとも一部を、前記選択されたキューに割り当てることは、前記選択されたキューバッファ内の前記利用可能な領域の量が、利用可能な領域の閾値に等しいか、またはそれより小さいかに基づく、請求項1または2に記載のスイッチ。
- 前記選択されたキューは、ネットワークの前記スイッチの1または複数の出力ポートに連結され、
前記パケットの前記一部は、前記1または複数の出力ポートのうちのある出力ポートに宛てられ、
前記キューポイントコントローラはさらに、
前記パケットの前記一部を前記共有バッファの前記少なくとも一部に格納し、
前記共有バッファの前記少なくとも一部が前記送信ポイントに対し不可視となり得るように、信号を前記送信ポイントに送信し、
前記信号は、
前記送信ポイントが、前記選択されたキューに関連付けられたクレジットカウンタをデクリメントすることを防止する、または
前記送信ポイントに、前記選択されたキューに関連付けられた前記クレジットカウンタをインクリメントさせる、請求項1から3のいずれか一項に記載のスイッチ。 - パケットをルーティングするためのスイッチであって、
複数のキューバッファにそれぞれ関連付けられた複数のキューと、
共有バッファと、
前記複数のキューバッファと前記共有バッファとに連結されたキューポイントコントローラと、を備え、
前記キューポイントコントローラは、
前記複数のキューのうちの選択されたキューに宛てられたパケットの一部を送信ポイントから受信し、
前記選択されたキューに関連付けられた、前記複数のキューバッファのうちの選択されたキューバッファ内の利用可能な領域の量を判断し、
前記選択されたキューバッファ内の判断された前記利用可能な領域の量に基づいて、前記共有バッファの少なくとも一部を、前記選択されたキューに割り当て、
前記共有バッファの前記少なくとも一部は前記送信ポイントに不可視であり、
前記選択されたキューは、ネットワークの前記スイッチの1または複数の出力ポートに連結され、
前記パケットの前記一部は、前記1または複数の出力ポートのうちのある出力ポートに宛てられ、
前記キューポイントコントローラはさらに、
前記パケットの前記一部を前記共有バッファの前記少なくとも一部に格納し、
前記共有バッファの前記少なくとも一部が前記送信ポイントに対し不可視となり得るように、信号を前記送信ポイントに送信し、
前記信号は、
前記送信ポイントが、前記選択されたキューに関連付けられたクレジットカウンタをデクリメントすることを防止する、または
前記送信ポイントに、前記選択されたキューに関連付けられた前記クレジットカウンタをインクリメントさせる、スイッチ。 - 前記共有バッファの前記少なくとも一部のサイズは、前記パケットのサイズに基づく、請求項4または5に記載のスイッチ。
- 前記クレジットカウンタは、前記スイッチのクレジットベースフロー制御メカニズムの一部であり、
前記信号は、前記送信ポイントに対し、データが前記選択されたキューから移動されたことを示す、請求項4から6のいずれか一項に記載のスイッチ。 - 前記複数のキューバッファ、前記複数のキューおよび前記共有バッファは、キューポイントを形成し、予め定められた閾値は、前記送信ポイントと前記キューポイントとの間のラウンドトリップ送信時間に基づく、請求項4から7のいずれか一項に記載のスイッチ。
- 前記クレジットカウンタは、前記送信ポイントが前記選択されたキューバッファ内の利用可能な領域の量をモニタリングできるようにする送信ポイントクレジットカウンタであり、前記スイッチはさらに、前記選択されたキューに関連付けられたローカルクレジットカウンタを有し、
前記キューポイントコントローラはさらに、前記ローカルクレジットカウンタに、前記送信ポイントクレジットカウンタを模倣させて、前記キューポイントコントローラが、前記信号を前記送信ポイントに送信するときを判断できるようにする、請求項4から8のいずれか一項に記載のスイッチ。 - 前記キューポイントコントローラはさらに、
前記共有バッファの前に割り当てられた部分が必要かを判断し、
前記割り当てられた部分がこれ以上必要ではないとの判断に応答して、前記共有バッファの前記前に割り当てられた部分を解放する、請求項9に記載のスイッチ。 - 前記共有バッファの前記前に割り当てられた部分がこれ以上必要ではないと判断することは、前記共有バッファの前記前に割り当てられた部分が空であることの指標、および、
前記選択されたキューバッファが空であることの指標、
前記共有バッファの前に割り当てられた別の部分が、予め定められた閾値より大きいか、またはそれに等しい利用可能な領域の量を有することの指標、または
前記共有バッファの前に割り当てられた別の部分が、ローカルカウンタの値に等しいか、またはそれより大きい利用可能な領域の量を有することの指標、に基づく、請求項10に記載のスイッチ。 - 前記送信ポイントクレジットカウンタおよび前記ローカルクレジットカウンタは、前記スイッチのリセットに応答して、前記選択されたキューバッファのサイズにリセットされる、請求項11に記載のスイッチ。
- 前記複数のキューバッファ、前記複数のキューおよび前記共有バッファは、キューポイントを形成し、前記送信ポイントは、前記スイッチの別のキューポイントである、請求項1から12のいずれか一項に記載のスイッチ。
- 前記複数のキューバッファ、前記複数のキューおよび前記共有バッファは、キューポイントを形成し、前記キューポイントは、前記スイッチのサブスイッチの一部である、請求項1から13のいずれか一項に記載のスイッチ。
- 前記スイッチは、1または複数のプロセッサをさらに有する、システムオンチップ(SoC)である、請求項1から14のいずれか一項に記載のスイッチ。
- スイッチのキューポイントのキューポイントコントローラによって、パケットの少なくとも一部を送信ポイントから受信する段階と、
前記キューポイントコントローラによって、前記キューポイントのキューに関連付けられたキューバッファ内に前記パケットの前記少なくとも一部を格納する段階と、
前記キューポイントコントローラによって、前記キューバッファ内の利用可能な領域を判断する段階と、
前記キューポイントコントローラによって、前記キューバッファ内の前記利用可能な領域に基づいて、共有バッファの少なくとも一部を前記キューに割り当てる段階であって、前記共有バッファは、前記キューポイントの1または複数の追加のキューに関連付けられる、割り当てる段階と、
前記キューポイントコントローラによって、信号を前記送信ポイントに送信して、前記送信ポイントが前記キューに関連付けられたクレジットカウンタをデクリメントすることを防止する、または、前記送信ポイントに、前記キューに関連付けられた前記クレジットカウンタをインクリメントさせる段階と、を備える、スイッチを動作させる方法。 - スイッチのキューポイントのキューポイントコントローラによって、パケットの少なくとも一部を送信ポイントから受信する段階と、
前記キューポイントコントローラによって、前記キューポイントのキューに関連付けられたキューバッファ内に前記パケットの前記少なくとも一部を格納する段階と、
前記キューポイントコントローラによって、前記キューバッファ内の利用可能な領域を判断する段階と、
前記キューポイントコントローラによって、前記キューバッファ内の前記利用可能な領域に基づいて、共有バッファの少なくとも一部を前記キューに割り当てる段階であって、前記共有バッファは、前記キューポイントの1または複数の追加のキューに関連付けられる、割り当てる段階と、
前記割り当てる段階に続いて、前記キューポイントコントローラによって、前記送信ポイントに確認応答を送信する段階と、を備える、スイッチを動作させる方法。 - 前記キューバッファ内の判断された前記利用可能な領域の量に基づいて割り当てる段階は、前記キューバッファ内の前記利用可能な領域の量が、利用可能な領域の予め定められた閾値に等しいか、またはそれより小さいかに基づく、請求項16に記載の方法。
- 前記クレジットカウンタは、前記スイッチのクレジットベースフロー制御メカニズムの一部であり、
前記信号は、データが前記キューから移動されることを示す、請求項18に記載の方法。 - 前記予め定められた閾値は、前記送信ポイントと前記キューポイントとの間のラウンドトリップ送信時間に基づく、請求項18または19に記載の方法。
- 前記クレジットカウンタは、前記送信ポイントが前記キューバッファ内の利用可能な領域の量をモニタリングできるようにする送信ポイントクレジットカウンタであり、前記方法はさらに、
前記キューポイントコントローラによって、ローカルクレジットカウンタに、前記送信ポイントクレジットカウンタを模倣させる段階と、
前記キューポイントコントローラによって、前記ローカルクレジットカウンタの値に少なくとも部分的に基づいて、前記信号を前記送信ポイントに送信するときを判断する段階と、を備える、請求項18から20のいずれか一項に記載の方法。 - 前記スイッチのリセットに応答して、前記ローカルクレジットカウンタを、前記キューバッファのサイズにリセットする段階をさらに備える、請求項21に記載の方法。
- スイッチのキューポイントのキューポイントコントローラに、
パケットの少なくとも一部を送信ポイントから受信する手順と、
前記キューポイントのキューに関連付けられたキューバッファ内に前記パケットの前記少なくとも一部を格納する手順と、
前記キューバッファ内の利用可能な領域の量に基づいて、共有バッファの少なくとも一部を前記キューに割り当てる手順であって、前記共有バッファは、前記キューポイントの1または複数の追加のキューに関連付けられている、割り当てる手順と、
信号を前記送信ポイントに送信して、前記送信ポイントが前記キューに関連付けられたクレジットカウンタをデクリメントすることを防止する、または、前記送信ポイントに、前記キューに関連付けられた前記クレジットカウンタをインクリメントさせる手順と、を実行させるためのプログラム。 - スイッチのキューポイントのキューポイントコントローラに、
パケットの少なくとも一部を送信ポイントから受信する手順と、
前記キューポイントのキューに関連付けられたキューバッファ内に前記パケットの前記少なくとも一部を格納する手順と、
前記キューバッファ内の利用可能な領域の量に基づいて、共有バッファの少なくとも一部を前記キューに割り当てる手順であって、前記共有バッファは、前記キューポイントの1または複数の追加のキューに関連付けられている、割り当てる手順と、
前記割り当てる手順に続いて、前記送信ポイントに確認応答を送信する手順と、を実行させるためのプログラム。 - 前記キューバッファ内の前記利用可能な領域の量に基づいて割り当てる手順は、前記キューバッファ内の前記利用可能な領域の量が、利用可能な領域の予め定められた閾値に等しいか、またはそれより小さいかに基づく、請求項23に記載のプログラム。
- 前記クレジットカウンタは、前記スイッチのクレジットベースフロー制御メカニズムの一部であり、
前記信号は、データが前記キューから移動されたことを示す、請求項25に記載のプログラム。 - 前記予め定められた閾値は、前記送信ポイントと前記キューポイントとの間のラウンドトリップ送信時間に基づく、請求項25または26に記載のプログラム。
- 前記クレジットカウンタは、前記送信ポイントが、前記キューバッファ内の利用可能な領域の量をモニタリングできるようにする送信ポイントクレジットカウンタであり、
前記プログラムは、さらに、前記キューポイントコントローラに、
ローカルクレジットカウンタに、前記送信ポイントクレジットカウンタを模倣させる手順と、
前記ローカルクレジットカウンタの値に少なくとも部分的に基づいて、前記信号を前記送信ポイントに送信するときを判断する手順と、を実行させるための、請求項25から27のいずれか一項に記載のプログラム。 - 前記プログラムは、さらに、前記キューポイントコントローラに、
前記スイッチのリセットに応答して、前記ローカルクレジットカウンタを前記キューバッファのサイズにリセットする手順を実行させるための、請求項28に記載のプログラム。 - 請求項23から29のいずれか一項に記載のプログラムを格納する1または複数のコンピュータ可読記録媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/072369 WO2016105414A1 (en) | 2014-12-24 | 2014-12-24 | Apparatus and method for buffering data in a switch |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018503995A JP2018503995A (ja) | 2018-02-08 |
JP6517934B2 true JP6517934B2 (ja) | 2019-05-22 |
Family
ID=56151210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017526669A Active JP6517934B2 (ja) | 2014-12-24 | 2014-12-24 | スイッチ内のデータをバッファリングするための装置および方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10454850B2 (ja) |
EP (1) | EP3238395A4 (ja) |
JP (1) | JP6517934B2 (ja) |
CN (1) | CN107005494B (ja) |
WO (1) | WO2016105414A1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10283091B2 (en) * | 2014-10-13 | 2019-05-07 | Microsoft Technology Licensing, Llc | Buffer optimization |
US10250530B2 (en) | 2016-03-08 | 2019-04-02 | Mellanox Technologies Tlv Ltd. | Flexible buffer allocation in a network switch |
US10205683B2 (en) | 2016-03-28 | 2019-02-12 | Mellanox Technologies Tlv Ltd. | Optimizing buffer allocation for network flow control |
US10387074B2 (en) * | 2016-05-23 | 2019-08-20 | Mellanox Technologies Tlv Ltd. | Efficient use of buffer space in a network switch |
US10601714B2 (en) | 2016-06-28 | 2020-03-24 | Mellanox Technologies Tlv Ltd. | Adaptive flow prioritization |
KR101716862B1 (ko) * | 2016-10-04 | 2017-03-15 | (주)볼트마이크로 | 영상데이터 관리 장치 및 방법 |
US10721185B2 (en) | 2016-12-06 | 2020-07-21 | Hewlett Packard Enterprise Development Lp | Age-based arbitration circuit |
US10944694B2 (en) | 2016-12-06 | 2021-03-09 | Hewlett Packard Enterprise Development Lp | Predictive arbitration circuit |
US10521121B2 (en) * | 2016-12-29 | 2019-12-31 | Intel Corporation | Apparatus, system and method for throttling a rate at which commands are accepted in a storage device |
US10389646B2 (en) | 2017-02-15 | 2019-08-20 | Mellanox Technologies Tlv Ltd. | Evading congestion spreading for victim flows |
US10645033B2 (en) | 2017-03-27 | 2020-05-05 | Mellanox Technologies Tlv Ltd. | Buffer optimization in modular switches |
US10601723B2 (en) * | 2018-04-12 | 2020-03-24 | Advanced Micro Devices, Inc. | Bandwidth matched scheduler |
CN108833301A (zh) * | 2018-05-30 | 2018-11-16 | 杭州迪普科技股份有限公司 | 一种报文处理方法和装置 |
US10693811B2 (en) * | 2018-09-28 | 2020-06-23 | Hewlett Packard Enterprise Development Lp | Age class based arbitration |
CN109922015A (zh) * | 2019-01-23 | 2019-06-21 | 珠海亿智电子科技有限公司 | 一种多路数据流共享缓冲器方法和系统 |
US11005770B2 (en) | 2019-06-16 | 2021-05-11 | Mellanox Technologies Tlv Ltd. | Listing congestion notification packet generation by switch |
US10999221B2 (en) | 2019-07-02 | 2021-05-04 | Mellanox Technologies Tlv Ltd. | Transaction based scheduling |
US11470010B2 (en) | 2020-02-06 | 2022-10-11 | Mellanox Technologies, Ltd. | Head-of-queue blocking for multiple lossless queues |
US20220114440A1 (en) * | 2020-10-14 | 2022-04-14 | Google Llc | Queue Allocation in Machine Learning Accelerators |
US11928360B2 (en) * | 2020-11-20 | 2024-03-12 | Western Digital Technologies, Inc. | Command slot management for memory devices |
US11860799B2 (en) * | 2021-12-20 | 2024-01-02 | Micron Technologies, Inc. | Memory request modulation |
US11973696B2 (en) | 2022-01-31 | 2024-04-30 | Mellanox Technologies, Ltd. | Allocation of shared reserve memory to queues in a network device |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3656295B2 (ja) * | 1995-12-07 | 2005-06-08 | 富士通株式会社 | Atmセル廃棄率低減方式 |
US6539024B1 (en) * | 1999-03-26 | 2003-03-25 | Alcatel Canada Inc. | Method and apparatus for data buffer management in a communications switch |
US20020141427A1 (en) * | 2001-03-29 | 2002-10-03 | Mcalpine Gary L. | Method and apparatus for a traffic optimizing multi-stage switch fabric network |
US6892285B1 (en) * | 2002-04-30 | 2005-05-10 | Cisco Technology, Inc. | System and method for operating a packet buffer |
US7408875B2 (en) | 2004-04-09 | 2008-08-05 | International Business Machines Corporation | System and program product for actively managing central queue buffer allocation |
US7948880B2 (en) * | 2004-10-29 | 2011-05-24 | Broadcom Corporation | Adaptive dynamic thresholding mechanism for link level flow control scheme |
US7643477B2 (en) | 2005-08-24 | 2010-01-05 | Intel Corporation | Buffering data packets according to multiple flow control schemes |
US20070140282A1 (en) * | 2005-12-21 | 2007-06-21 | Sridhar Lakshmanamurthy | Managing on-chip queues in switched fabric networks |
US9426083B2 (en) * | 2009-09-29 | 2016-08-23 | Hewlett Packard Enterprise Development Lp | Consistency checking for credit-based control of data communications |
US20110262779A1 (en) | 2010-04-23 | 2011-10-27 | Hossein Maleki | Electrochemical Cell with Reduced Magnetic Field Emission and Corresponding Devices |
US8665725B2 (en) * | 2011-12-20 | 2014-03-04 | Broadcom Corporation | System and method for hierarchical adaptive dynamic egress port and queue buffer management |
US9729459B2 (en) | 2012-11-19 | 2017-08-08 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for credit-based link level flow control |
US9467522B2 (en) * | 2013-07-19 | 2016-10-11 | Broadcom Corporation | Ingress based headroom buffering for switch architectures |
-
2014
- 2014-12-24 CN CN201480083629.5A patent/CN107005494B/zh active Active
- 2014-12-24 US US15/531,694 patent/US10454850B2/en active Active
- 2014-12-24 JP JP2017526669A patent/JP6517934B2/ja active Active
- 2014-12-24 WO PCT/US2014/072369 patent/WO2016105414A1/en active Application Filing
- 2014-12-24 EP EP14909254.6A patent/EP3238395A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CN107005494B (zh) | 2021-03-19 |
EP3238395A4 (en) | 2018-07-25 |
US20170295112A1 (en) | 2017-10-12 |
CN107005494A (zh) | 2017-08-01 |
JP2018503995A (ja) | 2018-02-08 |
EP3238395A1 (en) | 2017-11-01 |
US10454850B2 (en) | 2019-10-22 |
WO2016105414A1 (en) | 2016-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6517934B2 (ja) | スイッチ内のデータをバッファリングするための装置および方法 | |
US11252087B2 (en) | Data packet forwarding method, network adapter, host device, and computer system | |
US11218537B2 (en) | Load balancing in distributed computing systems | |
CN105511954B (zh) | 一种报文处理方法及装置 | |
US20220141138A1 (en) | Fast data center congestion response | |
CN108337188B (zh) | 通信量和负载感知动态队列管理 | |
EP3942398A1 (en) | System and method for facilitating data request management in a network interface controller (nic) | |
US11321256B2 (en) | Persistent kernel for graphics processing unit direct memory access network packet processing | |
CN108270676B (zh) | 一种基于Intel DPDK的网络数据处理方法及装置 | |
US20180285294A1 (en) | Quality of service based handling of input/output requests method and apparatus | |
US10664945B2 (en) | Direct memory access for graphics processing unit packet processing | |
EP3253027A1 (en) | Resource allocation method and apparatus for virtual machines | |
CN111371694B (zh) | 一种分流方法、装置和系统、处理设备和存储介质 | |
CN109218230B (zh) | 用于平衡跨多级网络交换机的输入端口的吞吐量的技术 | |
WO2018057165A1 (en) | Technologies for dynamically transitioning network traffic host buffer queues | |
CN116954874A (zh) | 资源分配方法、装置、设备及存储介质 | |
US11271897B2 (en) | Electronic apparatus for providing fast packet forwarding with reference to additional network address translation table | |
KR101634672B1 (ko) | 네트워크 인터페이스 가상화 장치, 방법 및 이를 실행하기 위한 컴퓨터 프로그램 | |
Meyer et al. | Low latency packet processing in software routers | |
US20180287953A1 (en) | Generic queue | |
KR101620995B1 (ko) | 가상실행 환경에서의 패킷 처리 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171219 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181105 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181204 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190301 |
|
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: 20190319 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190418 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6517934 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 |