IP Library › Granted Patent US 9,043,627
Granted Patent B2
US 9,043,627 · App. 13/890,694 · Granted May 26, 2015

Methods and apparatuses for controlling the temperature of a data processing system

Inventors: Michael Culbert (Monte Sereno, CA); Keith Alan Cox (Sunnyvale, CA); Brian Howard (Portola Valley, CA); Josh de Cesare (Campbell, CA); Richard Charles Williams (Saratoga, CA); Dave Robbins Falkenburg (San Jose, CA); Daisie Iris Huang (Oakland, CA); David Radcliffe (Sunnyvale, CA)
Assignee: Apple Inc.
G06F1/26G05D23/2442G06F1/20G06F1/3203G06F1/324G06F1/3296Y02B60/1217Y02B60/1285Y10S706/90
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 9,043,627
App. No.
13/890,694
Granted
May 26, 2015
Kind
B2
Abstract

Methods and apparatuses to manage working states of a data processing system. At least one embodiment of the present invention includes a data processing system with one or more sensors (e.g., physical sensors such as tachometer and thermistors, and logical sensors such as CPU load) for fine grain control of one or more components (e.g., processor, fan, hard drive, optical drive) of the system for working conditions that balance various goals (e.g., user preferences, performance, power consumption, thermal constraints, acoustic noise). In one example, the clock frequency and core voltage for a processor are actively managed to balance performance and power consumption (heat generation) without a significant latency. In one example, the speed of a cooling fan is actively managed to balance cooling effort and noise (and/or power consumption).

Claims (110)

1. A method to operate a data processing system, the method comprising:

collecting information from a plurality of sensors, wherein each sensor detects a working state of a corresponding component of a data processing system;

determining, based on the collected information, a subset of controls from a plurality of controls, each control in the subset of controls being configured to control at least one of the corresponding components of the data processing system;

determining a ranked order to adjust the subset of controls, the ranked order based on a plurality of rules to prioritize the subset of controls; and

adjusting the subset of controls in the ranked order to change the working states of the corresponding components of the data processing system to balance requirements in performance and in at least one of: thermal constraint or power consumption.

2. The method as in claim 1 , wherein the plurality of sensors comprise at least one of:

a) a temperature sensor;

b) a tachometer; or

c) a software module determining a load of a processor.

3. The method as in claim 1 , wherein the corresponding components comprise at least one of a heat source or a cooling source of the data processing system.

4. The method as in claim 3 , wherein the heat source comprises at least one of:

a) a Central Processing Unit (CPU);

b) a Graphics Processing Unit (GPU);

c) a hard drive;

d) an optical drive; or

e) an Integrated Circuit (IC) chip.

5. The method as in claim 1 , further comprising:

determining an amount of cooling change based on the collected information;

wherein the subset of controls are adjusted to effect the amount of cooling change.

6. The method as in claim 5 , wherein the amount of cooling change is determined according to a fuzzy logic.

7. The method as in claim 6 , wherein determining the ranked order to adjust the subset of controls comprises:

determining a prioritized list of the plurality of controls.

8. The method as in claim 7 , wherein the rules to prioritize the subset of controls represent one or more user preferences.

9. The method as in claim 7 , further comprising:

parceling out the amount of cooling change to the subset of controls based on the ranked order.

10. The method as in claim 1 , further comprising:

determining a first working condition of the data processing system from the collected information;

wherein the subset of controls is determined from a decision to move the data processing system from the first working condition to a second working condition.

11. A data processing system, comprising:

a housing; and

a plurality of components mounted within the housing, the plurality of components including:

a memory,

a plurality of sensors instrumented within the housing, each of the plurality of sensors configured to detect a working state of a corresponding component,

a processor coupled to the memory and the plurality of sensors, the processor configured by programming to:

determine, based on information collected from the plurality of sensors, a subset of controls from a plurality of controls, each control in the subset of controls being configured to control at least one of the corresponding components,

determine a ranked order to adjust the subset of controls, the ranked order based on a plurality of rules to prioritize the subset of controls, and

adjust the subset of controls in the ranked order to change the working states of the corresponding components of the data processing system to balance requirements in performance and in at least one of: thermal constraint or power consumption.

12. The data processing system as in claim 11 , wherein the plurality of sensors comprise at least one of:

a) a temperature sensor; or

b) a tachometer.

13. The data processing system as in claim 11 , wherein the corresponding components comprise at least one of a heat source or a cooling source of the data processing system.

14. The data processing system as in claim 13 , wherein the heat source comprises at least one of:

a) a Graphics Processing Unit (GPU);

b) a hard drive;

c) an optical drive; or

d) an Integrated Circuit (IC) chip.

15. The data processing system as in claim 11 , wherein the processor is configured by programming to determined an amount of cooling change based on the collected information, and wherein the subset of controls are adjusted to effect the amount of cooling change.

16. The data processing system as in claim 15 , wherein the amount of cooling change is determined according to a fuzzy logic.

17. The data processing system as in claim 16 , wherein the processor is configured by programming to determine a prioritized list of the plurality of controls.

18. The data processing system as in claim 17 , further comprising:

one or more input/output (I/O) devices coupled to the processor, the one or more input/output (I/O) devices configured to receive one or more user preferences;

wherein the rules to prioritize the subset of controls represent the one or more user preferences.

19. The data processing system as in claim 17 , wherein the processor is configured by programming to parcel out the amount of cooling change to the subset of controls based on the ranked order.

20. The data processing system as in claim 11 , wherein the processor is configured by programming to determine a first working condition of the data processing system from the collected information, and wherein the subset of controls is determined from a decision to move the data processing system from the first working condition to a second working condition.

21. A non-transitory machine readable medium containing executable computer program instructions which when executed by a data processing system cause the system to perform a method to operate the data processing system, the method comprising:

collecting information from a plurality of sensors, wherein each sensor detects a working state of a corresponding component of a data processing system;

determining, based on the collected information, a subset of controls from a plurality of controls, each control in the subset of controls being configured to control at least one of the corresponding components of the data processing system;

determining a ranked order to adjust the subset of controls, the ranked order based on a plurality of rules to prioritize the subset of controls; and

adjusting the subset of controls in the ranked order to change the working states of the corresponding components of the data processing system to balance requirements in performance and in at least one of: thermal constraint or power consumption.

22. The non-transitory medium as in claim 21 , wherein the plurality of sensors comprise at least one of:

a) a temperature sensor;

b) a tachometer; or

c) a software module determining a load of a processor.

23. The non-transitory medium as in claim 21 , wherein the corresponding components comprise at least one of a heat source or a cooling source of the data processing system.

24. The non-transitory medium as in claim 23 , wherein the at least one heat source comprises at least one of:

a) a Central Processing Unit (CPU);

b) a Graphics Processing Unit (GPU);

c) a hard drive;

d) an optical drive; or

e) an Integrated Circuit (IC) chip.

25. The non-transitory medium as in claim 21 , wherein the method further comprises:

determining an amount of cooling change based on the collected information;

wherein the subset of controls are adjusted to effect the amount of cooling change.

26. The non-transitory medium as in claim 25 , wherein the amount of cooling change is determined according to a fuzzy logic.

27. The non-transitory medium as in claim 26 , wherein determining the ranked order to adjust the subset of controls comprises:

determining a prioritized list of the plurality of controls.

28. The non-transitory medium as in claim 27 , wherein the rules to prioritize the subset of controls represent one or more user preferences.

29. The non-transitory medium as in claim 27 , wherein the method further comprises:

parceling out the amount of cooling change to the subset of controls based on the ranked order.

30. The non-transitory medium as in claim 21 , wherein the method further comprises:

determining a first working condition of the data processing system from the collected information;

wherein the subset of controls is determined from a decision to move the data processing system from the first working condition to a second working condition.

31. A data processing system, comprising:

means for collecting information from a plurality of sensors, wherein each sensor detects a working state of a corresponding component of a data processing system;

means for determining, based on the collected information, a subset of controls from a plurality of controls, each control in the subset of controls being configured to control at least one of the corresponding components of the data processing system;

means for determining a ranked order to adjust the subset of controls, the ranked order based on a plurality of rules to prioritize the subset of controls; and

means for adjusting the subset of controls in the ranked order to change the working states of the corresponding components of the data processing system to balance requirements in performance and in at least one of: thermal constraint or power consumption.

32. The data processing system as in claim 31 , wherein the plurality of sensors comprise at least one of:

a) a temperature sensor;

b) a tachometer; or

c) a software module determining a load of a processor.

33. The data processing system as in claim 31 , wherein the corresponding components comprise at least one of a heat source or a cooling source of the data processing system.

34. The data processing system as in claim 33 , wherein the heat source-comprises at least one of:

a) a Central Processing Unit (CPU);

b) a Graphics Processing Unit (GPU);

c) a hard drive;

d) an optical drive; or

e) an Integrated Circuit (IC) chip.

35. The data processing system as in claim 31 , further comprising:

means for determining an amount of cooling change based on the collected information;

wherein the subset of controls are adjusted to effect the amount of cooling change.

36. The data processing system as in claim 35 , wherein the amount of cooling change is determined according to a fuzzy logic.

37. The data processing system as in claim 36 , wherein the means for determining the ranked order to adjust the subset of controls comprises:

means for determining a prioritized list of the plurality of controls.

38. The data processing system as in claim 37 , wherein the rules to prioritize the subset of controls represent one or more user preferences.

39. The data processing system as in claim 37 , further comprising:

means for parceling out the amount of cooling change to the subset of controls based on the ranked order.

40. The data processing system as in claim 31 , further comprising:

means for determining a first working condition of the data processing system from the collected information;

wherein the subset of controls is determined from a decision to move the data processing system from the first working condition to a second working condition.

Continuity (5)
Division 13550922 · Jul 17, 2012
Division 12267329 · Nov 7, 2008
Division 10917719 · Aug 12, 2004
Provisional Application 60495447 · Aug 15, 2003
Related Publication 20130254563A1 · Sep 26, 2013