IP Library Granted Patent US 9,154,441
Granted Patent B2
US 9,154,441 · App. 13/798,481 · Granted Oct 6, 2015

Adaptive buffer allocation management

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 9,154,441
App. No.
13/798,481
Granted
Oct 6, 2015
Kind
B2
Abstract

Aspects of adaptive buffer allocation management are described. In one embodiment of adaptive buffer allocation management, data is received by a network component for communication to a network address. While awaiting transfer to the network address, the data must be stored or distributed to a buffer. In one embodiment, the data is distributed evenly about banks of the buffer when an amount of utilization of the buffer is low. In another embodiment, the data is distributed to certain banks of the buffer when the amount of utilization of the buffer is high. In other aspects, the amount of utilization of the buffer is monitored while data is distributed to the banks of the buffer, and the manner of data distribution among the banks is adapted based on the utilization. According to aspects the of adaptive data distribution, a buffer of reduced size may be used.

Claims (52)

1. A method of adaptive buffer allocation management, comprising:

receiving data for switching to a network address;

determining, by a utilization monitoring circuit for a buffer that includes a plurality of banks, a capacity utilization amount of each bank of the plurality of banks;

determining, by the utilization monitoring circuit, whether a capacity utilization amount of one of the banks has exceeded a first threshold by comparing each capacity utilization amount to the first threshold;

distributing, in a low impact mode, the data to any bank of the plurality of banks of the buffer when the utilization monitoring circuit determines that each capacity utilization amount of the plurality of banks is below the first threshold;

distributing, in a high impact mode, the data to specific banks of the buffer in which the capacity utilization amount is below the first threshold when the utilization monitoring circuit determines that the capacity utilization amount of one of the banks has exceeded the first threshold;

performing a read operation on the buffer;

determining, by the utilization monitoring circuit, whether the data was distributed in the high impact mode and whether the capacity utilization amount of the banks is below a second threshold; and

enabling the low impact mode when the utilization monitoring circuit determines that the data was distributed in the high impact mode and that the capacity utilization amount of the banks is below the second threshold.

2. The method of claim 1 , wherein

distributing the data to any bank of the plurality of banks of the buffer and distributing the data to specific banks of the buffer comprises writing data to banks of the buffer in one or more write operations, and

performing the read operation on the buffer comprises reading data from the buffer for transmission.

3. The method of claim 1 , wherein distributing the data to any bank of the plurality of banks of the buffer comprises writing data to any of the banks of the buffer when the capacity utilization amount is below the first threshold.

4. The method of claim 1 , wherein distributing the data to specific banks of the buffer comprises writing data to banks of the buffer having a lowest distribution of data when the capacity utilization amount of one of the banks is above the first threshold.

5. The method of claim 1 , wherein determining the capacity utilization amount of the buffer comprises determining whether a predefined number of banks of the buffer store an amount of data that is more than the first threshold.

6. The method of claim 1 , wherein determining the capacity utilization amount of the buffer further comprises determining a maximum amount of data storage skew between any two banks of the buffer.

7. The method of claim 1 , wherein determining the capacity utilization amount of the buffer comprises determining an average amount of data storage skew between banks of the buffer.

8. The method of claim 1 , wherein the specific banks of the buffer have a capacity utilization amount that is less than the first threshold.

9. The method of claim 8 , wherein

the determining whether the capacity utilization amount of the banks is below the second threshold further includes determining whether the capacity utilization amount of the banks is greater than the first threshold, and

the distributing of the data to any bank of the buffer comprises distributing the data to any bank of the buffer when the capacity utilization amount of each of the banks is less than the second threshold.

10. A computing device for adaptive buffer allocation management, comprising:

an ingress port that receives data for switching to a network address;

a utilization monitoring circuit that monitors an capacity utilization amount of a buffer that includes a plurality of banks and determines whether the capacity utilization amount of one of the banks has exceeded a first threshold by comparing each capacity utilization amount to the first threshold; and

a controlling circuit that

distributes data, in a low impact mode, to any bank of the buffer when the utilization monitoring circuit determines that each capacity utilization amount of the plurality of banks is below the first threshold,

distributes the data, in a high impact mode, to specific banks of the buffer in which the capacity utilization amount is below the first threshold when the utilization monitoring circuit determines that the capacity utilization amount of one of the banks has exceeded the first threshold, and

performs a read operation on the buffer, wherein

the utilization monitoring circuit further determines whether the data was distributed in the high impact mode and whether the capacity utilization amount of the banks is below a second threshold, and

the controlling circuit enables the low impact mode when the utilization monitoring circuit determines that the data was distributed in the high impact mode and that the capacity utilization amount of the banks is below the second threshold.

11. The device of claim 10 , wherein the controlling circuit further distributes data to banks of the buffer having a lowest distribution of data when the capacity utilization amount of one of the banks is above the first threshold.

12. The device of claim 10 , wherein the utilization monitoring circuit further determines whether a predefined number of banks of the buffer store an amount of data that is more than the first threshold.

13. The device of claim 10 , wherein the utilization monitoring circuit further determines a maximum amount of data storage skew between any two banks of the buffer.

14. The device of claim 10 , wherein the utilization monitoring circuit further determines an average amount of data storage skew between banks of the buffer.

15. The device of claim 10 , wherein the specific banks of the buffer have a capacity utilization amount that is less than the first threshold.

16. The device of claim 15 , wherein

the utilization monitoring circuit further determines whether the capacity utilization amount of the banks is below the second threshold and is greater than the first threshold, and

the controlling circuit further distributes the data evenly between each the banks of the buffer when the capacity utilization amount is less than the second threshold and greater than the first threshold.

17. A method of adaptive buffer allocation management, comprising:

receiving, by an ingress port, data for switching to a network address;

determining, by a utilization monitoring circuit, whether a predefined number of banks of a plurality of banks of a buffer store more than a first threshold amount of data;

writing data, by a control circuit in a low impact mode, to any of the banks of the buffer when the predefined number of banks do not store more than the first threshold amount of data;

writing data, by the control circuit in a high impact mode to specific banks of the buffer that have a lowest capacity utilization amount when the predefined number of banks store more than the first threshold amount of data;

reading data, by the control circuit, from the buffer,

determining, by the utilization monitoring circuit, whether the control circuit wrote data the high impact mode and whether the predefined number of banks store more than a second threshold amount of data; and

enabling, by the control circuit, the low impact mode when the utilization monitoring circuit determines that the control circuit wrote data in the high impact mode and that the predefined number of banks store more than the second threshold amount of data.

18. The method of claim 17 ,

wherein

writing data to any of the banks of the buffer comprises writing, by the control circuit, the data to any of the banks of the buffer when the capacity utilization amount of the predefined number of banks is greater than the first threshold, and

writing data to the specific banks of the buffer comprises writing data to the specific banks of the buffer that have a lowest distribution of data when the capacity utilization amount of the predefined number of banks less than the second threshold.

19. The method according to claim 17 , wherein determining whether the predefined number of banks store more than the first threshold amount of data further comprises determining, by the utilization monitoring circuit, a maximum amount of data storage skew between any two banks of the buffer.

20. The method according to claim 17 , wherein determining whether the predefined number of banks store more than the first threshold amount of data further comprises determining an average amount of data storage skew between banks of the buffer.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2013
From: MATTHEWS, WILLIAM BRAD; KWAN, BRUCE HUI
To: BROADCOM CORPORATION
Reel/Frame 030389/0473 →