IP Library Granted Patent US 9,122,439
Granted Patent B2
US 9,122,439 · App. 13/927,663 · Granted Sep 1, 2015

System and method for efficient buffer management for banked shared memory designs

Inventor: William Brad Matthews (San Jose, CA)
Assignee: BROADCOM CORPORATION
G06F5/14G06F9/50
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,122,439
App. No.
13/927,663
Granted
Sep 1, 2015
Kind
B2
Abstract

A system and method for efficient buffer management for banked shared memory designs are provided. In one embodiment, a controller within the switch is configured to manage the buffering of the shared memory banks by allocating full address sets to write sources. Each full address set that is allocated to a write source includes a number of memory addresses, wherein each memory address is associated with a different shared memory bank. A size of the full address set can be based on a determined number of buffer access contenders.

Claims (30)

1. A switch, comprising:

a first number of write sources;

a second number of read sources;

a plurality of shared memory banks that facilitate access by the first number of write sources and the second number of read sources; and

a controller that is configured to allocate full address sets to one of the first number of write sources, wherein each full address set includes a third number of memory addresses, each memory address in the third number of memory addresses being associated with a different shared memory bank, the third number being at least as large as the first number, the controller being further configured to monitor a fourth number of full address sets that are available to the first of the plurality of write sources, and to generate a flow control message based on the monitoring,

wherein the one of the first number of write sources selects one of the memory addresses from a full address set when writing a packet to a shared memory bank.

2. The switch of claim 1 , wherein the third number is equal to the first number.

3. The switch of claim 1 , wherein the third number is equal to the first number plus the second number.

4. The switch of claim 1 , wherein the controller implements a write first policy.

5. The switch of claim 1 , wherein the controller implements a read first policy.

6. A method performed by a switch, comprising:

allocating full address sets to one of a first number of write sources that writes packets to a plurality of shared memory banks, a second number of read sources reading the packets from the plurality of shared memory banks, wherein each full address set includes a third number of memory addresses, each memory address in the third number of memory addresses being associated with a different shared memory bank, the third number being at least as large as the first number;

selecting, by the one of the first number of write sources, one of the memory addresses from a full address set;

writing, by the one of the first number of write sources, a packet to a shared memory bank at the selected memory address, wherein the writing of the packet to the selected memory addresses removes a status of the address set containing the selected memory address as a full address set;

monitoring a fourth number of full address sets that are available to the first of the plurality of write sources; and

generating a flow control message based on the monitoring.

7. The method of claim 6 , wherein the third number is equal to the first number.

8. The method of claim 6 , wherein the third number is equal to the first number plus the second number.

9. The method of claim 6 , further comprising changing, after the writing, a designation of the address set containing the selected memory address from a full address set to a partial address set.

10. The method of claim 6 , wherein the monitoring comprises comparing the fourth number to a threshold value.

11. A method performed by a switch, comprising:

selecting, by one of a first number of write sources that write packets to a plurality of shared memory banks, one of a plurality of full address sets that are available to the one of the first number of write sources, a second number of read sources reading packets from the plurality of shared memory banks, wherein each full address set includes a third number of memory addresses, each memory address in the third number of memory addresses being associated with a different shared memory bank, the third number being at least as large as the first number;

writing, by the one of the first number of write sources, a packet to a shared memory bank at one of the memory addresses in the selected one of the plurality of full address sets;

reducing, based on the writing, a number of full address sets that are available to the one of the first number of write sources;

monitoring the number of full address sets that are available to the first of the plurality of write sources; and

generating a flow control message based on the monitoring.

12. The method of claim 11 , wherein the third number is equal to the first number.

13. The method of claim 11 , wherein the third number is equal to the first number plus the second number.

14. The method of claim 11 , further comprising changing, after the writing, a designation of the address set containing the selected memory address from a full address set to a partial address set.

15. The method of claim 11 , wherein the monitoring comprises comparing the monitored number of full address sets to a threshold value.

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 Jun 26, 2013
From: MATTHEWS, WILLIAM BRAD
To: BROADCOM CORPORATION
Reel/Frame 030691/0088 →
Continuity (2)
Provisional Application 61829429 · May 31, 2013
Related Publication 20140359231A1 · Dec 4, 2014