US 12,284,116 B2
Dynamic buffer management in multi-client token flow control routers
Alan Dodson Smith, Austin, TX (US); Chintan S. Patel, Austin, TX (US); Eric Christopher Morton, Austin, TX (US); Vydhyanathan Kalyanasundharam, Santa Clara, CA (US); and Narendra Kamat, West Lafayette, IN (US)
Assigned to Advanced Micro Devices, Inc., Santa Clara, CA (US)
Filed by Advanced Micro Devices, Inc., Santa Clara, CA (US)
Filed on Feb. 19, 2020, as Appl. No. 16/795,459.
Application 16/795,459 is a continuation of application No. 15/796,528, filed on Oct. 27, 2017, granted, now 10,608,943.
Prior Publication US 2020/0259747 A1, Aug. 13, 2020
This patent is subject to a terminal disclaimer.
Int. Cl. G01R 31/08 (2020.01); G06F 9/50 (2006.01); G06F 11/00 (2006.01); G06F 13/36 (2006.01); G08C 15/00 (2006.01); H04J 1/16 (2006.01); H04J 3/14 (2006.01); H04L 1/00 (2006.01); H04L 12/26 (2006.01); H04L 47/125 (2022.01); H04L 47/50 (2022.01)
CPC H04L 47/125 (2013.01) [G06F 9/5011 (2013.01); G06F 13/36 (2013.01); H04L 47/50 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A communication fabric having a maximum bandwidth, the maximum bandwidth corresponding to a maximum number of tokens, the communication fabric comprising:
a router comprising circuitry configured to allocate tokens to a plurality of clients according to a token allocation scheme, wherein each of the plurality of clients is configured to access a shared resource via the router, wherein the token allocation scheme comprises:
statically allocating a first number of tokens to at least one client that is not active of the plurality of clients, the first number of tokens being:
at least one token; and
less than the maximum number of tokens; and
dynamically allocating to each active client of the plurality of clients a second number of tokens from a free pool, the second number of tokens from the free pool is less than or equal to a difference between the maximum number of tokens and the first number of tokens;
deallocate one or more tokens from a given client while allowing the given client to maintain at least one token, based at least in part on a determination that the given client is no longer active; and
wherein a total buffering requirement in the router corresponding to a total number of packets for the plurality of clients is equal to a sum of the maximum number of tokens and a product of the first number of tokens and a total number of clients of the plurality of clients less one.