IP Library › Granted Patent US 10,095,286
Granted Patent B2
US 10,095,286 · App. 14/503,321 · Granted Oct 9, 2018

Thermally adaptive quality-of-service

Inventor: Derek R. Kumar (Cupertino, CA)
Assignee: Apple Inc.
G06F1/206G06F1/3206G06F1/3287G06F1/3296G06F9/4893G06F1/324G06F1/329Y02D10/126Y02D10/16Y02D10/171Y02D10/24
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,095,286
App. No.
14/503,321
Granted
Oct 9, 2018
Kind
B2
Abstract

A method and apparatus of a device that manages a thermal profile of a device by selectively throttling central processing unit operations of the device is described. The device manages a thermal profile of the device by adjusting a throttling a central processing unit execution of a historically high energy consuming task. In this embodiment, the device monitors thermal level of the thermal profile of the device, the device is executing a plurality of tasks that utilize a plurality of processing cores of the device. If the thermal level of the device exceeds a thermal threshold, the device identifies one of the plurality of tasks as a historically high energy consuming task, and throttles this historically high energy consuming task by setting a force idle execution time for the historically high energy consuming task. The device further executes the plurality of tasks.

Claims (30)

1. A non-transitory machine-readable medium having executable instructions to cause one or more processing units to perform a method to manage a thermal profile of a device, the method comprising:

monitoring thermal level of the thermal profile of the device, wherein the device is executing a plurality of tasks that utilize a plurality of processing cores of the device;

if the thermal level of the device exceeds a thermal threshold,

identifying one of the plurality of tasks as a historically high energy consuming task, wherein the identifying is based on at least information about historical energy consumption from a database that tracks energy consumption from previously running tasks, and

throttling the historically high energy consuming task by setting a force idle execution time for the historically high energy consuming task, wherein the force idle time is a percentage greater than zero and less than a hundred, wherein the force idle time percentage is set by the system according to the threshold exceeded; and

executing the plurality of tasks.

2. The non-transitory machine-readable medium of claim 1 , wherein a selective forced idle is an amount of time during an execution window that a task is not being executed.

3. The non-transitory machine-readable medium of claim 2 , further comprising:

putting a first processing core in a low power state during the selective forced idle.

4. The non-transitory machine-readable medium of claim 2 , further comprising:

overlapping the selective forced idle execution time with another one of the plurality of task that has a corresponding selective forced idle execution time.

5. The non-transitory machine-readable medium of claim 1 , wherein a historically high energy consuming task is a task that consumes more energy than an average of the plurality of tasks.

6. The non-transitory machine-readable medium of claim 1 , further comprising:

capturing energy consumption data for the plurality of tasks.

7. The non-transitory machine-readable medium of claim 6 , wherein the energy consumption data for one of the plurality of tasks is the amount of energy that is used by the device to execute that task.

8. The non-transitory machine-readable medium of claim 1 , wherein the executing the tasks comprises executing the plurality of tasks on a plurality of processing cores of the device.

9. The non-transitory machine-readable medium of claim 1 , wherein the thermal level is selected from the group consisting of device temperature and audible fan noise.

10. The non-transitory machine-readable medium of claim 1 , wherein the monitoring of the thermal level comprises:

recording the device temperature.

11. The non-transitory machine-readable medium of claim 1 , wherein the historically high energy consuming task is a foreground task.

12. A method to manage a thermal profile of a device, the method comprising:

monitoring thermal level of the thermal profile of the device, wherein the device is executing a plurality of tasks that utilize a plurality of processing cores of the device;

if the thermal level of the device exceeds a thermal threshold,

identifying one of the plurality of tasks as a historically high energy consuming task, wherein the identifying is based on at least information about historical energy consumption from a database that tracks energy consumption from previously running tasks, and

throttling the historically high energy consuming task by setting a force idle execution time for the historically high energy consuming task, wherein the force idle time is a percentage greater than zero and less than a hundred, wherein the force idle time percentage is set by the system according to the threshold exceeded; and

executing the plurality of tasks.

13. The method of claim 12 , wherein a selective forced idle is an amount of time during an execution window that a task is not being executed.

14. The method of claim 13 , further comprising:

overlapping the selective forced idle execution time with another one of the plurality of task that has a corresponding selective forced idle execution time.

15. The method of claim 13 , wherein a historically high energy consuming task is a task that consumes more energy than an average of the plurality of tasks.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2014
From: KUMAR, DEREK R.
To: APPLE INC.
Reel/Frame 033926/0265 →
Continuity (2)
Provisional Application 62006005 · May 30, 2014
Related Publication 20150346800A1 · Dec 3, 2015