IP Library › Granted Patent US 10,025,641
Granted Patent B2
US 10,025,641 · App. 15/240,788 · Granted Jul 17, 2018

Workload differentiation for processor frequency scaling

Inventor: Saravana Krishnan Kannan (San Diego, CA)
Assignee: QUALCOMM Incorporated
G06F9/5083G06F1/324G06F9/45558G06F2009/4557
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 10,025,641
App. No.
15/240,788
Granted
Jul 17, 2018
Kind
B2
Abstract

A method and device for controlling a frequency of a processor of a computing device are disclosed. The method includes receiving requests to process tasks on a processor of the computing device, classifying each of the tasks as either a new workload group or an historic workload group, and monitoring a load placed on the processor due to each of the workload groups. And the frequency of the processor is controlled based upon a total workload on the processor and a contribution of each of the workload groups to the total workload.

Claims (77)

1. A method for controlling a frequency of a processor of a computing device, the method comprising:

receiving requests from one or more applications executing on the computing device to process tasks on a processor of the computing device;

classifying each of the tasks as either a new workload group or an historic workload group;

monitoring a load placed on the processor due to each of the workload groups; and

controlling a frequency of the processor based upon a total workload on the processor and a contribution of each of the workload groups to the total workload, wherein controlling the frequency of the processor includes:

determining whether a ratio of a new workload to the total workload is greater than or equal to a threshold;

setting the frequency of the processor to a frequency selected by a performance-biased load-to-frequency-function if the ratio is greater than or equal to the threshold; and

setting the frequency of the processor to a frequency selected by a balanced load-to-frequency function if the ratio is less than or equal to the threshold.

2. The method of claim 1 , including:

tracking the tasks in quantized windows; and

classifying a particular task as a new workload if a total number of quantized windows during which the particular task ran since the particular task was created is less than N windows, where N is a configurable value.

3. The method of claim 1 , wherein a particular task is classified as a new workload if a threshold number of seconds have not passed since the particular task was created or since the particular task woke up after sleeping longer than a sleep threshold.

4. The method of claim 1 , comprising:

establishing a new-load-frequency;

establishing an historic-load-frequency;

determining a new-workload-weight equal to a ratio of a new workload to the total workload;

determining an historic-workload-weight equal to a ratio of an historic workload to the total workload; and

setting the frequency of the processor to: (new-workload-weight * new-load-frequency+historic-workload-weight * historic-load-frequency).

5. The method of claim 1 , wherein controlling the frequency of the processor includes:

applying a group-specific-load-to-frequency-function to the load of each of the workload groups to obtain a plurality of group-specific-frequency-contribution-values;

applying a weighting factor to each of the group-specific-frequency-contribution-values to obtain a plurality of weighted-group-specific-frequency-contribution values, wherein the weighting factor is between 0 and 1, inclusive; and

adding each of the weighted-group-specific-frequency-contribution values to obtain the frequency.

6. The method of claim 1 , wherein controlling the frequency of the processor includes:

applying each of a plurality of group-specific-load-to-frequency-functions to the total workload to obtain a plurality of group-specific-frequency-contribution-values;

applying a weighting factor to each of the group-specific-frequency-contribution-values to obtain a plurality of weighted-group-specific-frequency-contribution values, wherein the weighting factor is between 0 and 1, inclusive; and

adding each of the weighted-group-specific-frequency-contribution values to obtain the frequency.

7. A computing device comprising:

a processor configured to process tasks;

an operating system configured to:

receive requests to process tasks on a processor of the computing device;

classify each of the tasks as either a new workload group or an historic workload group;

monitor a load placed on the processor due to each of the workload groups;

determine a contribution of each of the workload groups to a total workload of the tasks on the processor; and

control a frequency of the processor based upon a contribution of each of the workload groups to the total workload of the tasks on the processor, wherein, to control the frequency, the operating system is configured to;

apply a group-specific-load-to-frequency-function to the load of each of the workload groups to obtain a plurality of group-specific-frequency-contribution-values;

apply a weighting factor to each of the group-specific-frequency-contribution-values to obtain a plurality of weighted-group-specific-frequency-contribution values, wherein the weighting factor is between 0 and 1, inclusive; and

add each of the weighted-group-specific-frequency-contribution values to obtain the frequency.

8. The computing device of claim 7 , wherein the operating system is configured to:

track the tasks in quantized windows; and

classify a particular task as a new workload if a total number of quantized windows during which the particular task ran since the particular task was created is less than N windows, where N is a configurable value.

9. The computing device of claim 7 , wherein a particular task is classified as a new workload if a threshold number of seconds have not passed since the particular task was created or since the particular task woke up after sleeping longer than a sleep threshold.

10. The computing device of claim 7 , wherein the operating system is configured to:

determine whether a ratio of a new workload to the total workload is greater than or equal to a threshold;

set the frequency of the processor to a frequency selected by a performance-biased load-to-frequency-function if the ratio is greater than or equal to the threshold; and

set the frequency of the processor to a frequency selected by a balanced load-to-frequency function if the ratio is less than or equal to the threshold.

11. The computing device of claim 7 , wherein the operating system is configured to:

establish a new-load-frequency;

establish an historic-load-frequency;

determine a new-workload-weight equal to a ratio of a new workload to the total workload;

determine an historic-workload-weight equal to a ratio of an historic workload to the total workload; and

set the frequency of the processor to: (new-workload-weight * new-load-frequency+historic-workload-weight * historic-load-frequency).

12. The computing device of claim 7 , wherein the operating system is configured to:

apply each of a plurality of group-specific-load-to-frequency-functions to the total workload to obtain a plurality of group-specific-frequency-contribution-values;

apply a weighting factor to each of the group-specific-frequency-contribution-values to obtain a plurality of weighted-group-specific-frequency-contribution values, wherein the weighting factor is between 0 and 1, inclusive; and

add each of the weighted-group-specific-frequency-contribution values to obtain the frequency.

13. A non-transitory, tangible processor readable storage medium, encoded with processor readable instructions to perform a method for controlling a frequency of a processor of a computing device, the method comprising:

receiving requests to process tasks on a processor of the computing device;

classifying each of the tasks as either a new workload group or an historic workload group;

monitoring a load placed on the processor due to each of the workload groups; and

controlling a frequency of the processor based upon a total workload on the processor and a contribution of each of the workload groups to the total workload, wherein controlling the frequency of the processor includes:

establishing a new-load-frequency;

establishing an historic-load-frequency;

determining a new-workload-weight equal to a ratio of a new workload to the total workload;

determining an historic-workload-weight equal to a ratio of an historic workload to the total workload; and

setting the frequency of the processor to: (new-workload-weight * new-load-frequency+historic-workload-weight * historic-load-frequency).

14. The non-transitory, tangible processor readable storage medium of claim 13 , the method including:

tracking the tasks in quantized windows; and

classifying a particular task as a new workload if a total number of quantized windows during which the particular task ran since the particular task was created is less than N windows, where N is a configurable value.

15. The non-transitory, tangible processor readable storage medium of claim 13 wherein a particular task is classified as a new workload if a threshold number of seconds have not passed since the particular task was created or since the particular task woke up after sleeping longer than a sleep threshold.

16. The non-transitory, tangible processor readable storage medium of claim 13 , comprising:

determining whether a ratio of a new workload to the total workload is greater than or equal to a threshold;

setting the frequency of the processor to a frequency selected by a performance-biased load-to-frequency-function if the ratio is greater than or equal to the threshold; and

setting the frequency of the processor to a frequency selected by a balanced load-to-frequency function if the ratio is less than or equal to the threshold.

17. The non-transitory, tangible processor readable storage medium of claim 13 , wherein controlling the frequency of the processor includes:

applying a group-specific-load-to-frequency-function to the load of each of the workload groups to obtain a plurality of group-specific-frequency-contribution-values;

applying a weighting factor to each of the group-specific-frequency-contribution-values to obtain a plurality of weighted-group-specific-frequency-contribution values, wherein the weighting factor is between 0 and 1, inclusive;

adding each of the weighted-group-specific-frequency-contribution values to obtain the frequency.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2016
From: KANNAN, SARAVANA KRISHNAN
To: QUALCOMM INNOVATION CENTER, INC.
Reel/Frame 040396/0461 →
Continuity (3)
Provisional Application 62218935 · Sep 15, 2015
Provisional Application 62232893 · Sep 25, 2015
Related Publication 20170075733A1 · Mar 16, 2017