IP Library Granted Patent US 10,230,652
Granted Patent B2
US 10,230,652 · App. 15/465,626 · Granted Mar 12, 2019

Combined pause-resume and credit-based flow-control

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,230,652
App. No.
15/465,626
Granted
Mar 12, 2019
Kind
B2
Abstract

A communication system includes a transmit (TX) device and a receive (RX) device. The TX device is configured to transmit data over a communication link. The RX device is configured to receive the data transmitted by the TX device over the communication link, to buffer the received data in an RX buffer, to assess a fill level of the RX buffer, to select, depending on the fill level of the RX buffer, either a pause-resume flow-control scheme or a credit-based flow-control scheme, and to apply the selected flow-control scheme in coordination with the TX device.

Claims (63)

1. A communication system, comprising:

a transmit (TX) device, configured to transmit data over a communication link; and

a receive (RX) device, which is configured to:

receive the data transmitted by the TX device over the communication link;

buffer the received data in an RX buffer;

assess a fill level of the RX buffer;

compare the fill level of the RX buffer to a threshold;

select a pause-resume flow-control scheme when the fill level is below the threshold, and select a credit-based flow-control scheme when the fill level is above the threshold; and

apply the selected flow-control scheme in coordination with the TX device.

2. The communication system according to claim 1 , wherein the threshold depends on a Round-Trip Time (RTT) over the communication link multiplied by a bandwidth of transferring the data.

3. The communication system according to claim 1 , wherein the TX device and the RX device are configured to manage a counter of transmitted data and a counter of received data, respectively, in accordance with a first counter management scheme while applying the pause-resume flow-control scheme, and in accordance with a second counter management scheme while applying the credit-based flow-control scheme.

4. The communication system according to claim 3 , wherein the TX device is configured to:

not increment the counter of the transmitted data while applying the pause-resume flow-control scheme;

initialize the counter of the transmitted data in response to receiving an instruction from the RX device to transition to the credit-based flow control scheme; and

increment the counter of the transmitted data while applying the credit-based flow-control scheme.

5. The communication system according to claim 4 , wherein the RX device is configured to:

not increment the counter of the received data while applying the pause-resume flow-control scheme; and

increment the counter of the received data only while applying the credit-based flow-control scheme.

6. The communication system according to claim 4 , wherein the RX device is configured to start incrementing the counter of the received data in response to receiving from the TX device a notification that the counter of the transmitted data has been initialized.

7. The communication system according to claim 4 , wherein:

the TX device is configured to send to the RX device a notification that the counter of the transmitted data has been initialized; and

the RX device is configured to send a first credit message in response to receiving the notification, and to start incrementing the counter of the received data only in response to receiving first data following the first credit message.

8. The communication system according to claim 3 , wherein, upon transitioning to the credit-based flow-control scheme, the RX device is configured to initialize the counter of the received data to a negative value.

9. The communication system according to claim 8 , wherein, upon initializing the counter of the received data, the RX device is configured to increment the counter of the received data artificially, irrespective of actual reception of data from the TX device.

10. The communication system according to claim 3 , wherein the TX device and the RX device are configured to increment the counter of the transmitted data and the counter of the received data, both while applying the pause-resume flow-control scheme and while applying the credit-based flow-control scheme.

11. The communication system according to claim 10 , wherein the TX device is configured to:

while applying the credit-based flow-control scheme, send to the RX device updated values of the counter of the transmitted data at a first update rate; and

while applying the pause-resume flow-control scheme, send the updated values at a second update rate, smaller than the first update rate.

12. A method for communication, comprising:

transmitting data over a communication link from a transmit (TX) device to a receive (RX) device; and

in the RX device:

receiving the data transmitted by the TX device over the communication link;

buffering the received data in an RX buffer;

assessing a fill level of the RX buffer;

comparing the fill level of the RX buffer to a threshold;

selecting a pause-resume flow-control scheme when the fill level is below the threshold, and selecting a credit-based flow-control scheme when the fill level is above the threshold; and

applying the selected flow-control scheme in coordination with the TX device.

13. The method according to claim 12 , wherein the threshold depends on a Round-Trip Time (RTT) over the communication link multiplied by a bandwidth of transferring the data.

14. The method according to claim 12 , and comprising managing in the TX device and in the RX device a counter of transmitted data and a counter of received data, respectively, in accordance with a first counter management scheme while applying the pause-resume flow-control scheme, and in accordance with a second counter management scheme while applying the credit-based flow-control scheme.

15. The method according to claim 14 , wherein managing the counter of the transmitted data comprises:

not incrementing the counter of the transmitted data while applying the pause-resume flow-control scheme;

initializing the counter of the transmitted data in response to receiving an instruction from the RX device to transition to the credit-based flow control scheme; and

incrementing the counter of the transmitted data while applying the credit-based flow-control scheme.

16. The method according to claim 15 , wherein managing the counter of the received data comprises:

not incrementing the counter of the received data while applying the pause-resume flow-control scheme; and

incrementing the counter of the received data only while applying the credit-based flow-control scheme.

17. The method according to claim 15 , wherein managing the counter of the received data comprises starting to increment the counter of the received data in response to receiving from the TX device a notification that the counter of the transmitted data has been initialized.

18. The method according to claim 15 , and comprising:

sending from the TX device to the RX device a notification that the counter of the transmitted data has been initialized; and

in the RX device, sending a first credit message in response to receiving the notification, and starting to increment the counter of the received data only in response to receiving first data following the first credit message.

19. The method according to claim 14 , wherein managing the counter of the received data comprises initializing the counter of the received data to a negative value upon transitioning to the credit-based flow-control scheme.

20. The method according to claim 19 , and comprising, upon initializing the counter of the received data, incrementing the counter of the received data in the RX device artificially, irrespective of actual reception of data from the TX device.

21. The method according to claim 14 , wherein managing the counter of the transmitted data and the counter of the received data comprises incrementing the counter of the transmitted data and the counter of the received data, both while applying the pause-resume flow-control scheme and while applying the credit-based flow-control scheme.

22. The method according to claim 21 , wherein managing the counter of the transmitted data comprises:

while applying the credit-based flow-control scheme, sending from the TX device to the RX device updated values of the counter of the transmitted data at a first update rate; and

while applying the pause-resume flow-control scheme, sending the updated values at a second update rate, smaller than the first update rate.

23. A communication device, comprising:

a receive (RX) buffer, which is configured to buffer data received over a communication link from a peer communication device; and

flow-control logic, configured to:

assess a fill level of the RX buffer;

compare the fill level of the RX buffer to a threshold;

select a pause-resume flow-control scheme when the fill level is below the threshold, and select a credit-based flow-control scheme when the fill level is above the threshold; and

apply the selected flow-control scheme in coordination with the peer communication device.

Assignments (2)
MERGER Recorded Dec 15, 2021
From: MELLANOX TECHNOLOGIES TLV LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 058517/0564 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2017
From: HARAMATY, ZACHY; GAFNI, BARAK; KFIR, AVIV
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 041670/0346 →