IP Library Granted Patent US 11,277,138
Granted Patent B2
US 11,277,138 · App. 17/070,771 · Granted Mar 15, 2022

Hierarchical statistically multiplexed counters and a method thereof

Inventors: Weihuang Wang (Los Gatos, CA); Gerald Schmidt (San Jose, CA); Srinath Atluri (Fremont, CA); Weinan Ma (San Jose, CA); Shrikant Sundaram Lnu (San Jose, CA)
Assignee: Marvell Asia PTE, LTD.
H03K21/026H04L47/62H04L49/9084H03K21/00H03K23/00H03K23/004H03K23/005
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 11,277,138
App. No.
17/070,771
Granted
Mar 15, 2022
Kind
B2
Abstract

Embodiments of the present invention relate to an architecture that uses hierarchical statistically multiplexed counters to extend counter life by orders of magnitude. Each level includes statistically multiplexed counters. The statistically multiplexed counters includes P base counters and S subcounters, wherein the S subcounters are dynamically concatenated with the P base counters. When a row overflow in a level occurs, counters in a next level above are used to extend counter life. The hierarchical statistically multiplexed counters can be used with an overflow FIFO to further extend counter life.

Claims (39)

1. A network device comprising:

a common memory pool, wherein memories from the common memory pool are separated into a plurality of banks; and

a counter architecture for extending counter life, wherein the counter architecture includes a hierarchy of levels of statistically multiplexed counters, wherein each of the hierarchy of levels includes N counters arranged in N/P rows, wherein each of the N/P rows includes P base counters and S subcounters, wherein any of the P base counters can be dynamically concatenated with one or more of the S subcounters to flexibly extend the counting capacity.

2. The network device of claim 1 , wherein counters in the same row in one level of the hierarchy of levels are shuffled into different rows in a next level above of the hierarchy of levels.

3. The network device of claim 2 , wherein a randomization of the shuffle is a bit reverse of a counter identifier of a counter, a hash function or a bit arrangement in another order.

4. The network device of claim 1 , wherein the counter architecture further includes a mirrored shift logic to extend the P counters to a full width such that a full range of shifting is reduced.

5. The network device of claim 1 , wherein the counter architecture is configured to update a counter by:

determining whether a corresponding row of the counter in a current level of the hierarchy of levels overflows;

based on the determination that the corresponding row in the current level does not overflow, processing each level below the current level by using a first routine and processing the current level by using a second routine; and

based on the determination that the corresponding row in the current level does overflow, determining whether a corresponding row of the counter in a next level above overflows;

based on the determination that the corresponding row of the counter in the next level above does not overflow, processing each level below the next level above by using the first routine and processing the next level above by using the second routine; and

based on the determination that the corresponding row of the counter in the next level above does overflow, when the next level above is not the highest level in the hierarchy of levels, returning to the step of determining whether a corresponding row of the counter in a next level above overflows, and when the next level above is the highest level in the hierarchy of levels, processing the next level above and each level below the next level above by using the first routine and updating an overflow queue.

6. The network device of claim 5 , wherein the first routine includes incrementing the counter in the corresponding level and shrinking the counter in the corresponding level.

7. The network device of claim 5 , wherein the second routine includes incrementing the counter in the corresponding level.

8. The network device of claim 7 , wherein the incrementing the counter includes expanding a size of the counter in the corresponding level.

9. The network device of claim 5 , wherein updating the overflow queue includes pushing a counter identifier of the counter and an overflow width into the overflow queue.

10. The network device of claim 5 , wherein the overflow queue is shared by the N counters in the highest level in the hierarchy of levels.

11. The network device of claim 1 , wherein the N counters are stored in an on-chip SRAM memory, using the plurality of banks of memory.

12. A network device comprising:

a common memory pool; and

a counter architecture including a mirrored shift logic and a hierarchy of levels of statistically multiplexed counters, wherein each level of the hierarchy of levels includes N counters arranged in N/P rows having P base counters, and further wherein the mirrored shift logic extends the P base counters to a full width such that a full range of shifting is reduced.

13. The network device of claim 12 , wherein counters in the same row in one level of the hierarchy of levels are shuffled into different rows in a next level above of the hierarchy of levels.

14. The network device of claim 13 , wherein a randomization of the shuffle is a bit reverse of a counter identifier of a counter, a hash function or a bit arrangement in another order.

15. The network device of claim 12 , wherein the counter architecture is configured to update a counter by:

determining whether a corresponding row of the counter in a current level of the hierarchy of levels overflows;

based on the determination that the corresponding row in the current level does not overflow, processing each level below the current level by using a first routine and processing the current level by using a second routine; and

based on the determination that the corresponding row in the current level does overflow, determining whether a corresponding row of the counter in a next level above overflows;

based on the determination that the corresponding row of the counter in the next level above does not overflow, processing each level below the next level above by using the first routine and processing the next level above by using the second routine; and

based on the determination that the corresponding row of the counter in the next level above does overflow, when the next level above is not the highest level in the hierarchy of levels, returning to the step of determining whether a corresponding row of the counter in a next level above overflows, and when the next level above is the highest level in the hierarchy of levels, processing the next level above and each level below the next level above by using the first routine and updating an overflow queue.

16. The network device of claim 15 , wherein the first routine includes incrementing the counter in the corresponding level and shrinking the counter in the corresponding level.

17. The network device of claim 15 , wherein the second routine includes incrementing the counter in the corresponding level.

18. The network device of claim 17 , wherein the incrementing the counter includes expanding a size of the counter in the corresponding level.

19. The network device of claim 15 , wherein updating the overflow queue includes pushing a counter identifier of the counter and an overflow width into the overflow queue.

20. The network device of claim 15 , wherein the overflow queue is shared by the N counters in the highest level in the hierarchy of levels.

21. The network device of claim 12 , wherein the N counters are stored in an on-chip SRAM memory, using the common memory pool.

22. A network device comprising:

a common memory pool; and

a counter architecture including a hierarchy of levels of statistically multiplexed counters, wherein each level of the hierarchy of levels includes N counters arranged in N/P rows having P base counters and S subcounters, and further wherein one or more of the N counters in the same row of the N/P rows in one level of the hierarchy of levels are shuffled into different rows of the N/P rows in a next level above of the one level of the hierarchy of levels.

23. The network device of claim 22 , wherein the shuffle is based on one of a group consisting of a bit reverse of one or more counter identifiers of the one or more of the N counters and a hash function.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2020
From: WANG, WEIHUANG; SCHMIDT, GERALD; ALTURI, SRINATH; MA, WEINAN; LNU, SHRIKANT SUNDARAM
To: XPLIANT, INC.
Reel/Frame 054057/0022 →
MERGER Recorded Oct 14, 2020
From: XPLIANT, INC.
To: CAVIUM NETWORKS LLC
Reel/Frame 054057/0048 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2020
From: CAVIUM NETWORKS LLC
To: CAVIUM, INC.
Reel/Frame 054057/0134 →
CHANGE OF NAME Recorded Oct 14, 2020
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 054084/0488 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 054084/0531 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 054084/0953 →
Continuity (4)
Division 16019780 · Jun 27, 2018
Division 15202428 · Jul 5, 2016
Division 14302351 · Jun 11, 2014
Related Publication 20210058087A1 · Feb 25, 2021