US 11,868,292 B1
Penalty based arbitration
Lev Vaskevich, Hertsliya (IL); and Noam Katz, Tel Aviv-Jaffa (IL)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Mar. 28, 2022, as Appl. No. 17/656,710.
Int. Cl. G06F 13/366 (2006.01); G06F 9/50 (2006.01)
CPC G06F 13/366 (2013.01) [G06F 9/5033 (2013.01)] 21 Claims
OG exemplary drawing
 
1. A network device, comprising:
a plurality of network ports configured to send requests to transmit packets to a packet processor;
a plurality of budget counters corresponding to the plurality of network ports, each budget counter initialized with a byte count budget for a corresponding network port;
an eligibility manager configured to determine which requesting network ports are eligible for transmitting a packet to the packet processor based on whether the byte count budget of the corresponding network port is above a threshold;
an arbiter configured to select a requesting network port from the plurality of network ports for transmitting a packet to the packet processor based on a round-robin algorithm and which of the requesting network ports are eligible in a current round of budget allocation; and
a budget manager configured to, for each of the budget counters:
decrement the budget counter by a number of bytes in each cycle that the corresponding network port transmits to the packet processor;
determine a number of cycles that the corresponding network port is idle while waiting for data to be available for transmission after starting to transmit a packet and before completing transmission of the packet; and
further decrement the budget counter by the number of bytes in each cycle for the number of cycles that the corresponding network port is idle while being selected for transmitting the packet.