IP Library Granted Patent US 7,191,273
Granted Patent B2
US 7,191,273 · App. 10/963,271 · Granted Mar 13, 2007

Method and apparatus for scheduling a resource to meet quality-of-service restrictions

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,191,273
App. No.
10/963,271
Granted
Mar 13, 2007
Kind
B2
Abstract

The present invention is directed to a method and apparatus for scheduling a resource to meet quality of service guarantees. In one embodiment of three levels of priority, if a channel of a first priority level is within its bandwidth allocation, then a request is issued from that channel. If there are no requests in channels at the first priority level that are within the allocation, requests from channels at the second priority level that are within their bandwidth allocation are chosen. If there are no requests of this type, requests from channels at the third priority level or requests from channels at the first and second levels that are outside of their bandwidth allocation are issued. The system may be implemented using rate-based scheduling.

Claims (95)

1. A method, comprising:

scheduling access to a resource to meet quality of service guarantees for requests within an apparatus;

storing a first request in a first channel, wherein the first channel is assigned with a first priority level;

keeping track of bandwidth usage from the first channel;

demoting a priority level of the first channel based on exceeding an allotted amount of bandwidth usage from the first channel in a specified period of time;

scheduling the first channel to issue the first request to a resource to meet quality of service guarantees for requests within the apparatus; and

keeping track of the first channel's bandwidth usage history by incrementing a rate counter every unit cycle and by incrementing an allocation counter every predetermined number of rate count and decrementing the allocation counter each time a request is received from the first channel.

2. A method, comprising:

scheduling access to a resource to meet quality of service guarantees for requests;

storing a first request in a first channel that is assigned with a first priority level;

keeping track of scheduling history from the first channel;

demoting a priority level of the first channel based on exceeding a tracked feature of scheduling history associated with the first channel in a specified period of time, wherein the tracked feature of scheduling history associated with the channel is a type of request within a request stream; and

scheduling the first channel to issue the first request to a resource to meet quality of service guarantees for requests.

3. The method of claim 2 , further comprising:

keeping track of bandwidth usage from the first channel; and

demoting a priority level of the first channel based on exceeding an allotted amount of bandwidth usage from the first channel in a specified period of time.

4. The method of claim 3 , further comprising:

continuing to grant access to the resource to requests from the first channel, if the first channel is at an assigned highest priority and is within its allotted amount of bandwidth usage regardless of whether requests are waiting for access in lower priority channels.

5. The method of claim 3 , further comprising:

granting access to the resource to a second request from a second channel at a second priority level that is within its allotted amount of bandwidth usage if there are no requests in channels at the first priority level that are within their allotted amount of bandwidth usage.

6. The method of claim 3 , further comprising:

granting access to the resource to a third request from a third channel at a third priority level if there are no requests in channels at the first priority level or a second priority level that are within their allotted amount of bandwidth usage.

7. The method of claim 3 , further comprising:

promoting the priority level of the first channel when the first channel is back within its allotted amount of bandwidth usage.

8. The method of claim 3 , further comprising:

using scheduling history to decide whether the first channel is within its allocated amount of bandwidth usage.

9. The method of claim 3 , further comprising:

using rate-based scheduling to decide whether the first channel is within its allocated amount of bandwidth usage.

10. A method, comprising:

scheduling access to a resource to meet quality of service guarantees for requests within an apparatus;

storing a first request in a first channel that is assigned with a first priority level;

keeping track of scheduling history from the first channel;

demoting a priority level of the first channel based on exceeding a tracked feature of scheduling history associated with the first channel in a specified period of time; and

scheduling the first channel to issue the first request to a resource to meet quality of service guarantees for requests within the apparatus, wherein the tracked feature of scheduling history associated with the channel is an amount of time needed to access the resource relative to a current timing of accessing the resource.

11. The method of claim 10 , further comprising:

keeping track of bandwidth usage from the first channel; and

demoting a priority level of the first channel based on exceeding an allotted amount of bandwidth usage from the first channel in a specified period of time.

12. The method of claim 11 , further comprising:

continuing to grant access to the resource to requests from the first channel, if the first channel is at an assigned highest priority and is within its allotted amount of bandwidth usage regardless of whether requests are waiting for access in lower priority channels.

13. The method of claim 11 , further comprising:

granting access to the resource to a second request from a second channel at a second priority level that is within its allotted amount of bandwidth usage if there are no requests in channels at the first priority level that are within their allotted amount of bandwidth usage.

14. The method of claim 11 , further comprising:

granting access to the resource to a third request from a third channel at a third priority level if there are no requests in channels at the first priority level or a second priority level that are within their allotted amount of bandwidth usage.

15. The method of claim 11 , further comprising:

promoting the priority level of the first channel when the first channel is back within its allotted amount of bandwidth usage.

16. The method of claim 11 , further comprising:

using scheduling history to decide whether the first channel is within its allocated amount of bandwidth usage.

17. The method of claim 11 , further comprising:

using rate-based scheduling to decide whether the first channel is within its allocated amount of bandwidth usage.

18. An apparatus, comprising:

means for scheduling access to a resource to meet quality of service guarantees for requests within the apparatus;

means for storing a first request in a first channel, wherein the first channel is assigned with a first priority level;

means for keeping track of bandwidth usage from the first channel;

means for demoting a priority level of the first channel based on exceeding an allotted amount of bandwidth usage from the first channel in a specified period of time;

means for scheduling the first channel to issue the first request to a resource to meet quality of service guarantees for requests within the apparatus; and

means for keeping track of the first channel's bandwidth usage history by incrementing a rate counter every unit cycle and by incrementing an allocation counter every predetermined number of rate count and decrementing the allocation counter each time a request is received from the first channel.

19. An apparatus, comprising:

means for scheduling access to a resource to meet quality of service guarantees for requests;

a first channel that is assigned with a first priority level to store a first request;

means for keeping track of bandwidth usage from the first channel;

means for demoting a priority level of the first channel based on exceeding an allotted amount of bandwidth usage from the first channel in a specified period of time;

means for scheduling the first channel to issue the first request to a resource to meet quality of service guarantees for requests;

an allocation counter; and

a rate counter to keep track of the first channel's bandwidth usage history by incrementing the rate counter every unit cycle and by incrementing the allocation counter every predetermined number of rate count and decrementing the allocation counter each time a request is received from the first channel.

20. An apparatus, comprising:

means for scheduling access to a resource to meet guality of service guarantees for requests within the apparatus;

means for storing a first request in a first channel, wherein the first channel is assigned with a first priority level;

means for keeping track of scheduling history from the first channel;

means for demoting a priority level of the first channel based on exceeding a tracked feature of scheduling history associated with the first channel in a specified period of time; and

means for scheduling the first channel to issue the first request to a resource to meet quality of service guarantees for requests within the apparatus, wherein the tracked feature of scheduling history associated with the channel is a type of request within a request stream.

21. The method of claim 20 , further comprising:

keeping track of bandwidth usage from the first channel; and

demoting a priority level of the first channel based on exceeding an allotted amount of bandwidth usage from the first channel in a specified period of time.

22. The method of claim 21 , further comprising:

continuing to grant access to the resource to requests from the first channel, if the first channel is at an assigned highest priority and is within its allotted amount of bandwidth usage regardless of whether requests are waiting for access in lower priority channels.

23. The method of claim 21 , further comprising:

granting access to the resource to a second request from a second channel at a second priority level that is within its allotted amount of bandwidth usage if there are no requests in channels at the first priority level that are within their allotted amount of bandwidth usage.

24. The method of claim 21 , further comprising:

granting access to the resource to a third request from a third channel at a third priority level if there are no requests in channels at the first priority level or a second priority level that are within their allotted amount of bandwidth usage.

25. The method of claim 21 , further comprising:

promoting the priority level of the first channel when the first channel is back within its allotted amount of bandwidth usage.

26. The method of claim 21 , further comprising:

using scheduling history to decide whether the first channel is within its allocated amount of bandwidth usage.

27. The method of claim 21 , further comprising:

using rate-based scheduling to decide whether the first channel is within its allocated amount of bandwidth usage.

28. An apparatus, comprising:

means for scheduling access to a resource to meet quality of service guarantees for requests;

a first channel that is assigned with a first priority level to store a first request;

means for keeping track of scheduling history from the first channel;

means for demoting a priority level of the first channel based on exceeding a tracked feature of scheduling history associated with the first channel in a specified period of time, wherein the tracked feature of scheduling history associated with the channel is an amount of time needed to access the resource relative to a current timing of accessing the resource; and

means for scheduling the first channel to issue the first request to a resource to meet quality of service guarantees for request.

29. An apparatus, comprising:

an arbiter configured to schedule access to a resource for requests from a plurality of channels within the apparatus, where one or more of the channels have an assigned priority level and convey to the arbiter requests to access the resource, the arbiter configured to determine if the resource is available to service requests within the apparatus, the arbiter configured to demote a priority level of a first channel based on exceeding a tracked feature of scheduling history associated with the first channel in a specified period of time, the arbiter configured with a quality-of-service (QOS) guarantee for requests from the first channel, the arbiter configured to schedule the first channel to issue a first request to the resource to meet the quality of service guarantee for the first request, wherein the tracked feature of scheduling history associated with the channel is an amount of time needed to access the resource relative to a current timing of accessing the resource.

30. The apparatus of claim 29 , wherein the arbiter is configured to continuously grant access to the resource to requests from the first channel, if the first channel is at an assigned highest priority and is within its allotted amount of bandwidth usage regardless of whether requests are waiting for access in lower priority channels.

31. The apparatus of claim 29 , wherein the arbiter is configured to promote the priority level of the first channel when the first channel is back within its allotted amount of bandwidth usage.

Assignments (4)
CHANGE OF NAME Recorded Aug 30, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 061356/0166 →
MERGER AND CHANGE OF NAME Recorded Jun 9, 2019
From: SONICS, INC.; FACEBOOK TECHNOLOGIES, LLC
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 049442/0332 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2015
From: PARTNERS FOR GROWTH, L.P.
To: SONICS, INC.
Reel/Frame 035790/0758 →
SECURITY AGREEMENT Recorded May 26, 2005
From: SONICS, INC.
To: PARTNERS FOR GROWTH, L.P.
Reel/Frame 016069/0063 →