Claims
- 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; 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; comparing each bucket to determine a grant bucket having the most number of credits 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, wherein each fill rate is different, each fill rate indicating access priority assigned to the associated device.
- 8. The method of claim 1, wherein each drain rate is different, each drain rate indicating access priority assigned to the associated device.
- 9. The method of claim 1, further comprising the step of:
determining a maximum latency when a bucket reaches a maximum number of credits.
- 10. The method of claim 9, 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.
- 11. 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.
- 12. The method of claim 1, further comprising the step of:
determining an amount of bandwidth each device has used.
- 13. The method of claim 12, further comprising the step of:
charging an entity according to the amount of bandwidth used.
- 14. 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; 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; a grant determination module for comparing each bucket to determine a grant bucket having the most number of credits at a specific time; and a grant access module for granting access to the shared resource to the device associated with the grant bucket.
- 15. The system of claim 14, wherein the shared resource comprises a memory bandwidth.
- 16. The system of claim 15, wherein memory bandwidth is associated with one or more of DRAM, SDRAM, SRAM and EPROM.
- 17. The system of claim 14, wherein the shared resource comprises a bus connected to at least one peripheral device including one or more of TDM, UART, USB, and PCI.
- 18. The system of claim 14, wherein the plurality of devices comprise processing units.
- 19. The system of claim 14, wherein the plurality of devices comprise at least a combination of a DMA controller, a network processor and a protocol processor.
- 20. The system of claim 14, wherein each fill rate is different, each fill rate indicating access priority assigned to the associated device.
- 21. The system of claim 14, wherein each drain rate is different, each drain rate indicating access priority assigned to the associated device.
- 22. The system of claim 14, wherein a maximum latency is determined when a bucket reaches a maximum number of credits.
- 23. The system of claim 22, 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.
- 24. The system of claim 14, 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.
- 25. The system of claim 14, wherein an amount of bandwidth each device has used is determined.
- 26. The system of claim 25, wherein an entity is charged according to the amount of bandwidth used.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This patent application claims priority to U.S. Provisional Patent Application No. 60/393,742 filed Jul. 8, 2002, which is hereby incorporated by reference herein in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60393742 |
Jul 2002 |
US |