IP Library Granted Patent US 9,112,727
Granted Patent B2
US 9,112,727 · App. 13/591,919 · Granted Aug 18, 2015

Method and apparatus for probabilistic allocation in a switch packet buffer

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,112,727
App. No.
13/591,919
Granted
Aug 18, 2015
Kind
B2
Abstract

Systems and methods of writing data to a buffer during a buffer cycle are described. The buffer has a plurality of buffer banks having various fill levels. The buffer determines a first portion of banks from the plurality of buffer banks. The first portion of banks unfilled banks. A rank can be assigned to each of the first portion of banks and a candidate set of banks chosen from the first portion of banks. A target bank is then chosen from the candidate set and the data is written to that bank. The ranking may be random. Furthermore, the target bank can be chosen based on ranking, fill level, or both.

Claims (41)

1. A method of writing, during a read/write cycle, data to a buffer having a plurality of banks, the method comprising:

identifying unfilled banks of the plurality of banks to define a first subset of banks of the plurality of banks, each bank in the first subset of banks having a corresponding fill level value;

assigning, independently of the corresponding fill level value, an ordered rank to the unfilled banks in the first subset of banks;

selecting a pre-determined number of banks of the first subset of banks having the lowest fill level values to form a candidate set of banks;

choosing a first bank from the candidate set based on the corresponding fill level value and the ordered rank of the banks in the candidate set; and

writing at least a portion of the data to the first bank.

2. The method of claim 1 , wherein selecting the candidate set includes excluding any banks that have a read access during the read/write cycle from the candidate set.

3. The method of claim 1 , wherein the pre-determined number of banks in the first subset is greater than or equal to the number of read/write commands that are processed during a read/write cycle of the buffer.

4. The method of claim 1 , wherein the ordered rank is randomly assigned to the first subset of banks.

5. The method of claim 1 , wherein choosing the first bank comprises:

determining that two banks have the same fill level value; and

choosing from among the two banks the bank having the highest ordered rank.

6. The method of claim 1 , further comprising masking a least significant portion of the fill level value for the banks in the first subset of banks so as to create a modified fill level value for each bank in the first subset of banks.

7. The method of claim 6 , wherein selecting the pre-determined number of banks of the first subset of banks is based on the modified fill level values of the corresponding banks in the first subset of banks.

8. The method of claim 7 , wherein choosing the first bank from the candidate set is based on at least one of the respective modified fill level value and the ordered rank of the banks in the candidate set.

9. The method of claim 1 , further comprising determining that the data is multicast data.

10. The method of claim 9 , wherein choosing the first bank comprises randomly selecting a bank from the candidate set without considering fill values.

11. A system configured to write data to a buffer during a read/write cycle, the system comprising:

a hardware-based buffer comprising a plurality of banks configured to store data packets; and

a hardware-based controller configured to:

identify unfilled banks of the plurality of banks to define a first subset of banks of the plurality of banks, each bank in the first subset of banks having a corresponding fill level value;

assign, independently of the corresponding fill level value, an ordered rank to unfilled banks in the first subset of banks;

select a predetermined number of banks of the first subset of banks having the lowest fill level values to form a candidate set of banks from the first subset of banks;

choose a first bank from the candidate set of banks based on the corresponding fill level value and the ordered rank of the banks in the candidate set; and

write at least a portion of the data to the first bank.

12. The system of claim 11 therein the controller is further configured to exclude any banks that have a read access during the read/write cycle from the candidate set.

13. The system of claim 11 , wherein the pre-determined number of banks in the first subset is greater than or equal to the number of read/write commands that are processed during a read/write cycle of the buffer.

14. The system of claim 11 , wherein the ordered rank is randomly assigned to the first subset of banks.

15. The system of clam 11 , wherein the controller is configured to choose the bank having a highest ordered rank when two banks have the same fill level value.

16. A method of writing, during a read/write cycle, data to a buffer having a plurality of banks, the method comprising:

identifying unfilled banks of the plurality of banks to define a first subset of banks of the plurality of banks, each bank in the first subset of banks having a corresponding fill level value;

randomly assigning a rank to the unfilled banks in the first subset of banks;

masking a least significant portion of the fill level value for the banks in the first subset of banks so as to create a modified fill level value for each bank in the first subset of banks;

selecting a pre-determined number of banks of the first subset of banks having the lowest modified fill level values to form a candidate set of banks;

choosing a first bank from the candidate set having the lowest respective modified fill level value, including choosing the bank with the highest rank if two or more banks have the lowest respective modified fill level value; and

writing at least a portion of the data to the first bank.

17. The method of claim 16 , wherein selecting the candidate set includes excluding any banks that have a read access during the read/write cycle from the candidate set.

18. The method of claim 16 , wherein the pre-determined number of banks in the first portion is greater than or equal to the number of read/write commands that are processed during a read/write cycle of the buffer.

19. The method of claim 16 , further comprising:

choosing a second bank from the candidate set having the second lowest respective modified fill level value, including choosing the second hank with the highest remaining rank if two or more banks have the second lowest respective modified fill level value; and

writing at least a portion of the data to the second bank.

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 Aug 22, 2012
From: LAU, MICHAEL; GRISWOLD, MARK; OPSASNICK, EUGENE
To: BROADCOM CORPORATION
Reel/Frame 028830/0634 →