IP Library Granted Patent US 7,474,670
Granted Patent B2
US 7,474,670 · App. 10/614,338 · Granted Jan 6, 2009

Method and system for allocating bandwidth

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 7,474,670
App. No.
10/614,338
Granted
Jan 6, 2009
Kind
B2
Abstract

The present invention is directed to methods and systems for allocating bandwidth (or other shared resource) among multiple masters. According to an aspect of the present invention, an arbiter assigns a bucket to each CPU (or other device) where each bucket holds the credits for that CPU. Each bucket has a predetermined fill rate and a drain rate. Depending on the priority given to a particular CPU, the corresponding bucket will drain (or fill) at a particular rate. For example, CPUs with a higher priority will drain at a slower rate. For each clock tick (or other period of time) that a CPU is stalled, a number of credits is accrued. The bucket with the highest number of credits has priority and will be given access to the shared resource (e.g., DRAM, SDRAM, SRAM, EPROM, etc.).

Claims (46)

1. A method for allocating a shared resource among a plurality of devices, the method comprising the steps of:

associating a bucket to each one of the plurality of devices wherein the plurality of devices share a shared resource;

assigning a fill rate to each bucket where each bucket accrues a predetermined number of credits for each time period the associated device is stalled, wherein each fill rate is different, each fill rate indicating access priority assigned to the associated device;

assigning a drain rate to each bucket where each bucket drains a predetermined number of credits for each time period the associated device is granted access to the shared resource, wherein each drain rate is different, each drain rate indicating access priority assigned to the associated device;

determining a grant bucket based on a number of credits for each bucket at a specific time; and

granting access to the shared resource to the device associated with the grant bucket.

2. The method of claim 1 , wherein the shared resource comprises a memory bandwidth.

3. The method of claim 2 , wherein memory bandwidth is associated with one or more of DRAM, SDRAM, SRAM and EPROM.

4. The method of claim 1 , wherein the shared resource comprises a bus connected to at least one peripheral device including one or more of TDM, UART, USB, and PCI.

5. The method of claim 1 , wherein the plurality of devices comprise processing units.

6. The method of claim 1 , wherein the plurality of devices comprise at least a combination of a DMA controller, a network processor and a protocol processor.

7. The method of claim 1 , further comprising the step of:

determining a maximum latency when a bucket reaches a maximum number of credits.

8. The method of claim 7 , further comprising the step of:

granting immediate access to the shared resource to the device associated with bucket reaching the maximum number of credits when the maximum latency is determined.

9. The method of claim 1 , further comprising the step of:

dynamically adjusting one or more of the fill rate and drain rate associated with one or more buckets for load balancing one or more of the plurality of devices.

10. The method of claim 1 , further comprising the step of:

determining an amount of bandwidth each device has used.

11. The method of claim 10 , further comprising the step of:

charging an entity according to the amount of bandwidth used.

12. A system for allocating a shared resource among a plurality of devices, the system comprising:

an association module for associating a bucket to each one of the plurality of devices wherein the plurality of devices share a shared resource;

a fill rate module for assigning a fill rate to each bucket where each bucket accrues a predetermined number of credits for each time period the associated device is stalled, wherein each fill rate is different, each fill rate indicating access priority assigned to the associated device;

a drain rate module for assigning a drain rate to each bucket where each bucket drains a predetermined number of credits for each time period the associated device is granted access to the shared resource, wherein each drain rate is different, each drain rate indicating access priority assigned to the associated device;

a grant determination module for determining a grant bucket based on a number of credits for each bucket at a specific time; and

a grant access module for granting access to the shared resource to the device associated with the grant bucket.

13. The system of claim 12 , wherein the shared resource comprises a memory bandwidth.

14. The system of claim 13 , wherein memory bandwidth is associated with one or more of DRAM, SDRAM, SRAM and EPROM.

15. The system of claim 12 , wherein the shared resource comprises a bus connected to at least one peripheral device including one or more of TDM, UART, USB, and PCI.

16. The system of claim 12 , wherein the plurality of devices comprise processing units.

17. The system of claim 12 , wherein the plurality of devices comprise at least a combination of a DMA controller, a network processor and a protocol processor.

18. The system of claim 12 , wherein a maximum latency is determined when a bucket reaches a maximum number of credits.

19. The system of claim 18 , wherein immediate access to the shared resource is granted to the device associated with bucket reaching the maximum number of credits when the maximum latency is determined.

20. The system of claim 12 , wherein one or more of the fill rate and drain rate associated with one or more buckets is dynamically adjusted for load balancing one or more of the plurality of devices.

21. The system of claim 12 , wherein an amount of bandwidth each device has used is determined.

22. The system of claim 21 , wherein an entity is charged according to the amount of bandwidth used.

23. A system comprising:

means for associating a bucket to each one of the plurality of devices wherein the plurality of devices share a shared resource;

means assigning a fill rate to each bucket where each bucket accrues a predetermined number of credits for each time period the associated device is stalled, wherein each fill rate is different, each fill rate indicating access priority assigned to the associated device;

means for assigning a drain rate to each bucket where each bucket drains a predetermined number of credits for each time period the associated device is granted access to the shared resource, wherein each drain rate is different, each drain rate indicating access priority assigned to the associated device;

means for determining a grant bucket based on a number of credits for each bucket at a specific time; and

means for granting access to the shared resource to the device associated with the grant bucket.

24. The system of claim 23 , further comprising:

means for determining a maximum latency when a bucket reaches a maximum number of credits; and

means for granting immediate access to the shared resource to the device associated with bucket reaching the maximum number of credits when the maximum latency is determined.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Sep 30, 2015
From: SILICON VALLEY BANK
To: IKANOS COMMUNICATIONS, INC.
Reel/Frame 036733/0031 →
RELEASE OF SECURITY INTEREST Recorded Sep 30, 2015
From: ALCATEL-LUCENT USA, INC.
To: IKANOS COMMUNICATIONS, INC.
Reel/Frame 036732/0876 →
SECURITY INTEREST Recorded Jun 10, 2015
From: IKANOS COMMUNICATIONS, INC.
To: SILICON VALLEY BANK
Reel/Frame 035874/0351 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded May 5, 2015
From: IKANOS COMMUNICATIONS, INC.
To: ALCATEL-LUCENT USA, INC.
Reel/Frame 035581/0710 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2009
From: CONEXANT SYSTEMS, INC.; CONEXANT, INC.; BROOKTREE BROADBAND HOLDING INC.
To: IKANOS COMMUNICATIONS, INC.
Reel/Frame 023163/0723 →
RELEASE OF SECURITY INTEREST Recorded Aug 24, 2009
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: BROOKTREE BROADBAND HOLDING, INC
Reel/Frame 023148/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2007
From: GLOBESPANVIRATA, INC.
To: BROOKTREE BROADBAND HOLDING, INC.
Reel/Frame 018826/0939 →
SECURITY AGREEMENT Recorded Nov 21, 2006
From: BROOKTREE BROADBAND HOLDING, INC.
To: BANK OF NEW YORK TRUST COMPANY, N.A., THE
Reel/Frame 018573/0337 →
CHANGE OF NAME Recorded Nov 2, 2006
From: GLOBESPANVIRATA, INC.
To: CONEXANT, INC.
Reel/Frame 018471/0286 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2003
From: NOWSHADI, FARSHID
To: GLOBESPAN VIRATA INCORPORATED
Reel/Frame 014610/0799 →