PATENT DOCUMENT

Publication Number: US-9098258-B2
Application Number: US-201213620405-A
Country: US
Kind Code: B2

Title: Thermal-based acoustic management

Abstract:
At least certain embodiments of the disclosures relate to methods, devices, and data processing systems for thermal-based acoustic management. In one embodiment, a computer-implemented method defers one or more background tasks during normal operation of a system if the system has a reduced performance feature that allows reduced or throttled performance in a non-user state. The system enters a low power state (e.g., sleep state) to cool the system after a period of normal operation. The system enters a different low power state (e.g., dark wake state) with a reduced performance and performs at least one of the deferred background tasks while in this low power state without needing a cooling mechanism.

Claims:
What is claimed is: 
     
       1. A computer-implemented method, comprising:
 automatically deferring one or more background tasks during normal operation of a system; 
 causing the system to enter a first low power state for a first time period; 
 causing the system to enter a second low power state for a second time period; 
 sending a sleep request to an operating system (OS) of the system prior to the system needing to activate a cooling mechanism as determined by a control algorithm; 
 causing the system to enter the first low power state for a third time period in response to the sleep request; 
 causing the system to enter the second low power state for a fourth time period that is determined by the control algorithm in response to the sleep request; and 
 performing at least one of the deferred background tasks while in the second low power state. 
 
     
     
       2. The computer-implemented method of  claim 1 , wherein noise from the cooling mechanism is reduced when the system enters the second low power state and performs the one or more deferred background tasks. 
     
     
       3. The computer-implemented method of  claim 1 , further comprising:
 executing a thermal management algorithm to set a clocking frequency for one or more processing units in the system at a lower level than a clocking frequency during normal operation. 
 
     
     
       4. The computer-implemented method of  claim 1 , further comprising:
 executing the control algorithm to determine, under a current load, when the cooling mechanism will need to be turned on to cool the system and prevent an overheating condition. 
 
     
     
       5. A computer readable non-transitory medium storing executable program instructions which when executed cause a data processing system to perform a computer-implemented method, comprising:
 automatically deferring one or more background tasks during normal operation of a system; 
 causing the system to enter a first low power state for a first time period; 
 causing the system to enter a second low power state for a second time period; 
 sending a sleep request to an operating system (OS) of the system prior to the system needing to activate a cooling mechanism based on a determination of a control algorithm; 
 causing the system to enter the first low power state for a third time period in response to the sleep request; and 
 causing the system to enter the second low power state for a fourth time period that is determined by the control algorithm in response to the sleep request; and 
 performing at least one of the deferred background tasks while in the second low power state. 
 
     
     
       6. The computer readable non-transitory medium of  claim 5 , wherein noise from the cooling mechanism is reduced during the second low power state and performs the one or more deferred background tasks. 
     
     
       7. The computer readable non-transitory medium of  claim 5 , further comprising:
 executing a thermal management algorithm to set a clocking frequency for one or more processing units in the system at a lower level than a clocking frequency during normal operation. 
 
     
     
       8. The computer readable non-transitory medium of  claim 5 , further comprising:
 executing the control algorithm to determine, under a current load, when the cooling mechanism will need to be turned on to cool the system and prevent an overheating condition. 
 
     
     
       9. A data processing system, comprising:
 one or more processing units to execute instructions; and 
 a system management controller coupled to the one or more processing units, the system management controller programmed to provide instructions to reduce a clocking frequency of the one or more processing units during a first low power state in comparison to a clocking frequency during normal operation of the data processing system, to send a sleep request to an operating system (OS) of the data processing system prior to the data processing system needing to activate a cooling mechanism based on the determination of a control algorithm, and to cause the data processing system to enter a second low power state for a first time period in response to the sleep request, the one or more processing units programmed to execute instructions to cause at least one background task to be executed while in the first low power state. 
 
     
     
       10. The data processing system of  claim 9 , wherein noise from the cooling mechanism is reduced when the system enters the first low power state and performs the one or more deferred background tasks. 
     
     
       11. The data processing system of  claim 9 , wherein the system management controller is further programmed to execute the control algorithm to determine, under a current load, when the cooling mechanism will need to be turned on to cool the data processing system and prevent an overheating condition. 
     
     
       12. A computer-implemented method, comprising:
 automatically deferring one or more background tasks during normal operation of a system; 
 causing the system to enter a first low power state for a first time period; 
 sending a sleep request to an operating system (OS) of the system prior to the system needing to activate a cooling mechanism based on a determination of a control algorithm; 
 causing the system to enter a second low power state for a second time period in response to the sleep request; and 
 causing the system to enter the first low power state for a third time period that is determined by the control algorithm; and 
 performing at least one of the deferred background tasks while in the first low power state. 
 
     
     
       13. The computer-implemented method of  claim 12 , wherein noise from the cooling mechanism is reduced when the system enters the first low power state and performs the one or more deferred background tasks. 
     
     
       14. The computer-implemented method of  claim 12 , further comprising:
 executing the control algorithm to determine, under a current load, when the cooling mechanism will need to be turned on to cool the system and prevent an overheating condition. 
 
     
     
       15. A computer readable non-transitory medium storing executable program instructions which when executed cause a data processing system to perform a computer-implemented method, comprising:
 automatically deferring one or more background tasks during normal operation of a system; 
 causing the system to enter a first low power state for a first time period; 
 sending a sleep request to an operating system (OS) of the system prior to the system needing to activate a cooling mechanism based on the determination of a control algorithm; 
 causing the system to enter a second low power state for a second time period in response to the sleep request; and 
 causing the system to enter the first low power state for a third time period that is determined by the control algorithm; and 
 performing at least one of the deferred background tasks while in the first low power state. 
 
     
     
       16. The computer readable non-transitory medium of  claim 15 , wherein noise from the cooling mechanism is reduced when the system enters the first low power state and performs the one or more deferred background tasks. 
     
     
       17. The computer readable non-transitory medium of  claim 15 , the method further comprising:
 executing the control algorithm to determine, under a current load, when the cooling mechanism will need to be turned on to cool the system and prevent an overheating condition.

Description:
RELATED APPLICATIONS 
     This application claims the benefit of Provisional Application No. 61/657,645, filed Jun. 8, 2012, which is incorporated herein by reference. 
    
    
     FIELD OF THE DISCLOSURE 
     Embodiments of the present disclosure generally relate to thermal-based acoustic management. 
     BACKGROUND OF THE DISCLOSURE 
     Electronic devices, such as computer systems or wireless cellular telephones or other data processing systems, include thermal management for controlling the device and preventing overheating. For example, during normal operation, temperature of the device may increase, which can cause a cooling fan to turn on to cool off the device. However, if the cooling fan is not able to sufficiently cool the device, then a clocking frequency of the central processing unit may need to be slowed in order to decrease the temperature of the device and this also causes slower performance of the system. 
     SUMMARY OF THE DISCLOSURE 
     At least certain embodiments of the disclosures relate to methods, devices, and data processing systems for thermal-based acoustic management. In one embodiment, a computer-implemented method defers one or more background tasks during normal operation of a system if the system has a reduced performance feature that allows reduced or throttled performance in a non-user state (e.g., dark wake state). The method causes the system to enter a first low power state (e.g., sleep state) for a first time period to cool the system after a period of normal operation. The method causes the system to enter a second low power state (e.g., dark wake state) for a second time period and performs at least one of the deferred background tasks while in the second low power state. A user of the system is likely not aware that the system enters the second low power state and performs the one or more deferred background tasks because no cooling mechanism (e.g., cooling fan that generates noise while in operation) is needed based on the reduced performance during the second low power state. 
     In another embodiment, a computer-implemented method defers one or more background tasks during normal operation of a system if the system has a reduced performance feature that allows reduced or throttled performance in a non-user state (e.g., dark wake state). The method causes the system to enter a first low power state (e.g., dark wake state) for a first time period after a period of normal operation when the system does not need to be cooled. The system performs at least one of the deferred background tasks while in the first low power state. The method may cause the system to enter a second low power state (e.g., sleep state) for a second time period when the system needs to be cooled without having to use a cooling mechanism. A user of the system is likely not aware that the system enters the first low power state and performs the one or more deferred background tasks because no cooling mechanism (e.g., cooling fan that generates noise while in operation) is needed based on the reduced performance during the first low power state. 
     Other systems and methods are also described, and machine readable media, which contain executable instructions to cause a machine to operate as described herein, are also described. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present disclosure is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements. 
         FIG. 1   a  illustrates a flow diagram in one embodiment of the present invention for a computer-implemented method  100  of thermal-based acoustic management in a data processing system; 
         FIG. 1   b  illustrates a flow diagram in one embodiment of the present invention for a computer-implemented method  101  of thermal-based acoustic management in a data processing system; 
         FIG. 2  illustrates a timeline for controlling power states of a system in one embodiment of the present invention; 
         FIG. 3  illustrates a timeline for controlling power states of a system in one embodiment of the present invention; 
         FIG. 4  is a block diagram of one embodiment of the present invention of a data processing system; 
         FIG. 5  is a block diagram of one embodiment of the present invention of a system; 
         FIG. 6   a  illustrates a flow diagram in one embodiment of the present invention for a computer-implemented method  600  for thermal-based acoustic management in a data processing system; and 
         FIG. 6   b  illustrates a flow diagram in one embodiment of the present invention for a computer-implemented method  601  for thermal-based acoustic management in a data processing system. 
     
    
    
     DETAILED DESCRIPTION 
     Methods and data processing systems are disclosed for thermal-based acoustic management. In one embodiment, a computer-implemented method defers one or more background tasks during normal operation of a system if the system has a reduced performance feature that allows reduced or throttled performance in a non-user low power state (e.g., dark wake state, state with no user activity). The method causes the system to enter a low power state (e.g., sleep state) for a first time period to cool the system after a period of normal operation with user activity. The method causes the system to enter a low power state (e.g., dark wake state) with a reduced performance for a second time period and perform at least one of the deferred background tasks. A user of the system is likely not aware that the system enters the non-user low power state and performs the one or more deferred background tasks because no cooling mechanism (e.g., cooling fan that generates noise while in operation) is needed based on the reduced performance. In this manner, the system can perform these tasks during periodic wake ups of the sleeping system without the user knowing that these tasks are occurring. The user will be able to better utilize processing resources during normal operation because the background tasks are deferred until a time when the user is not using the system. 
       FIG. 1   a  illustrates a flow diagram in one embodiment of the present invention for a computer-implemented method  100  for thermal-based acoustic management in a data processing system. The computer-implemented method  100  is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine or a system), or a combination of both. In one embodiment, the computer implemented method  100  is performed by processing logic and a system management controller. 
     At block  102 , processing logic (e.g., one or more processing units) enters a normal operational mode in response to powering ON of the system by a user. At block  104 , the processing logic (e.g., one or more processing units) automatically defers one or more background tasks (e.g., installing software tasks, updating indexes of metadata regarding files or items on the system, downloading new email, a backup utility to backup files, etc) with a power assertion until a low power state having reduced performance occurs. The operating system (OS) needs to support the reduced performance feature during a non-user state (e.g., dark wake state with no cooling mechanism) in order to have the background tasks deferred. 
     At block  106 , processing logic may cause the system to enter a first low power state such as a sleep state. For example, a user may close a display screen of a laptop causing the system to enter the sleep state or a lack of input for a certain time period may cause the system to enter the sleep state. The sleep state is a low power state with the one or more processing units being turned off and not executing software code while other heat generators (e.g., memory are also turned off). At block  108 , the processing logic enters a second low power state (e.g., dark wake state). At blocks  109   a - c , the system management controller (SMC) performs several operations concurrently. At block  109   a , the SMC executes a thermal management algorithm, which sets a clocking frequency for the one or more processing units. At block  109   b , the SMC executes a control algorithm to determine, under a current load, when a cooling mechanism (e.g., fan) will need to be turned on to cool the system and prevent an overheating condition. At block  109   c , the system management controller sends a sleep request to the operating system (OS) prior to the system needing to activate the cooling mechanism based on the determination of the control algorithm. The control algorithm reacts to a change in temperature (e.g., temperature rise) in determining when a cooling mechanism will be needed. The control algorithm limits power to control heat. The dark wake state consumes more power than the sleep state because the one or more processing units are operational, but operate at a lower clocking frequency than during normal operation. Certain heat generators may be turned off during the dark wake state including a graphics processing unit. Some operations may continue during the dark wake state including synchronizing data between devices. At block  110 , the processing logic causes the one or more processing units to execute software code (instructions) to perform the one or more background tasks that were previously deferred during normal operation. Blocks  109   a - c  and  110  may be performed concurrently or substantially at the same time. 
     At block  116 , the processing logic causes the system to enter the first low power state (e.g., sleep state) for a certain time period (e.g., 30 minutes) in response to the sleep request. The control algorithm may determine the certain time period based on a type of platform (e.g., mobile device, laptop, desktop, etc.). At block  118 , the processing logic causes the system to enter the second low power state (e.g., dark wake state with disabled cooling mechanism) for a certain time period (e.g., 30 minutes, 1 hour) that is determined by the control algorithm in response to the sleep request. At block  120 , the processing logic causes the one or more processing units to execute software code (instructions) to perform background tasks that were previously deferred during normal operation or not completed at block  110 . In this manner, the system switches between the first and second low power states as needed to complete the background tasks without needing to trigger the cooling mechanism and potentially make the user aware of the operations of the system. The flow of the method  100  will return to block  102  and the normal operational mode if a user begins using the system at any point in time. 
       FIG. 1   b  illustrates a flow diagram in one embodiment of the present invention for a computer-implemented method  101  of thermal-based acoustic management in a data processing system. The computer-implemented method  101  is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine or a system), or a combination of both. In one embodiment, the computer implemented method  101  is performed by processing logic and a system management controller. 
     Blocks  102 - 108 ,  109   a - 109   c , and  110  of method  101  are performed in the same or similar manner as described for the method  100 . The method  101  includes an additional optional block  109   d  that sets a time period for the second low power state. At blocks  109   a - d , the system management controller (SMC) performs several operations concurrently. At block  109   a , the SMC executes a thermal management algorithm, which sets a clocking frequency for the one or more processing units. At block  109   b , the SMC executes a control algorithm to determine, under a current load, when a cooling mechanism (e.g., fan) will need to be turned on to cool the system and prevent an overheating condition. At block  109   c , the system management controller optionally sends a sleep request to the operating system (OS) prior to the system needing to activate the cooling mechanism based on the determination of the control algorithm. The control algorithm reacts to a change in temperature (e.g., temperature rise) in determining when a cooling mechanism will be needed. The control algorithm limits power to control heat. The time period for the second low power state may be set at block  109   d  and this time period may expire prior to a cooling mechanism being needed. The setting of this time period may preclude the need for a sleep request. At block  110 , the processing logic causes the one or more processing units to execute software code (instructions) to perform the one or more background tasks that were previously deferred during normal operation. Blocks  109   a - d  and  110  may be performed concurrently or substantially at the same time. 
     At block  116 , the processing logic causes the system to enter the first low power state (e.g., sleep state) for a certain time period (e.g., 30 minutes) in response to the sleep request or upon expiration of the time period set for the second low power state. The control algorithm may determine the certain time period of the first low power state based on a type of platform (e.g., mobile device, laptop, desktop, etc.). Upon expiration of the time period of the first low power state, the method  100  returns to block  108  and enters the system into the second low power state. In this manner, the system switches between the first and second low power states as needed to complete the background tasks without needing to trigger the cooling mechanism and potentially make the user aware of the operations of the system. The flow of the method  101  will return to block  102  and the normal operational mode if a user begins using the system at any point in time. 
       FIG. 2  illustrates a timeline for controlling power states of a system in one embodiment of the present invention. The system may include a power ON state  206 , a dark wake state  208 , and a sleep state  210 . The power ON state  206  may be used by a user during time period  220  for performing normal operations. Power assertions  202  and  204  represent background tasks that are deferred during normal operation and wait until a user is not using the system and a reduced performance feature of a low power state exists such as dark wake state  208 . 
     At time period  222 , the system is not being used by a user in the power ON state and the system transitions to the sleep state  210 . At time period  224 , the system is allowing the one or more processing units to cool with the processors being turned off. The time period  224  may be predetermined or the OS may control the length of the time period. At time period  226 , the system transitions to the dark wake state. Alternatively, the system may transition to the dark wake state  212  based on the execution of power assertion  202  (e.g., backup operation) at point  203 . At time period  228 , the power assertion  204  is executed beginning at point  205 . The OS may determine the time period  228  for performing one or more power assertions before it is necessary to use a cooling mechanism. The system or OS may determine if wired or wireless internet access (e.g., WiFi) is available for performing one or more background tasks. The system may transition back to the sleep state if internet access is not available and needed for completing the background tasks. At time period  230 , the system transitions to the sleep state  210  to avoid needing to use the cooling mechanism (e.g., cooling fan). For example, thermal sensors located in the system or near a surface of the system may be monitored by the system or the system management controller to determine when a temperature of one or more processors or a skin temperature near an outer surface of the system approaches or reaches a warning temperature or a cooling mechanism activation temperature. Approaching or reaching the warning temperature (e.g., 35-38 degrees C.) may cause the system to transition from the dark wake state to the sleep state. Approaching or reaching the cooling mechanism activation temperature (e.g., 39-41 degrees C.) may cause the system to activate the cooling mechanism and possibly also transition from the dark wake state to the sleep state. At time period  232 , the system is allowing the one or more processing units to cool with the processors being turned off. The OS may determine the time period  232  for cooling the system or it may be predetermined. At time period  234 , the system again transitions to the dark wake state. 
     In one embodiment, the thermal sensors can measure the temperature at a single point in the data processing system or the temperatures at various points in the data processing system. The monitoring of temperature with the thermal sensors may be replaced or supplemented with a thermal status that can be a calculation of a parameter, such as power, that acts as a proxy for the one or more temperatures. In another embodiment, the thermal status can be determined from such a calculation without measuring any temperature. For example, a determination of power consumption (from either measured current or a model of power consumption) can be used as a proxy of temperature without having to use temperature sensors. 
       FIG. 6   a  illustrates a flow diagram in another embodiment of the present invention for a computer-implemented method for thermal-based acoustic management in a data processing system. The computer-implemented method  601  is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine or a system), or a combination of both. In one embodiment, the computer implemented method  601  is performed by processing logic and a system management controller. 
     At block  602 , processing logic (e.g., one or more processing units) enters a normal operational mode in response to powering ON of the system by a user. At block  604 , the processing logic (e.g., one or more processing units) automatically defers one or more background tasks (e.g., installing software tasks, updating indexes of metadata regarding files or items on the system, downloading new email, a backup utility to backup files, etc) with a power assertion until a low power state having reduced performance occurs. The operating system (OS) needs to support the reduced performance feature during a non-user state (e.g., dark wake state with no cooling mechanism) in order to have the background tasks deferred. 
     At block  606 , processing logic may cause the system to enter a first low power state such as a dark wake state. For example, a user may close a display screen of a laptop causing the system to enter the dark wake state or a lack of input for a certain time period may cause the system to enter the dark wake state. At blocks  609   a - c , the system management controller (SMC) performs several operations concurrently. At block  609   a , the SMC executes a thermal management algorithm, which sets a clocking frequency for the one or more processing units. At block  609   b , the SMC executes a control algorithm to determine, under a current load, when a cooling mechanism (e.g., fan) will need to be turned on to cool the system and prevent an overheating condition. At block  609   c , the system management controller sends a sleep request to the operating system (OS) prior to the system needing to activate the cooling mechanism based on the determination of the control algorithm. The control algorithm reacts to a change in temperature (e.g., temperature rise) in determining when a cooling mechanism will be needed. The control algorithm limits power to control heat. The dark wake state consumes more power than a sleep state because the one or more processing units are operational in the dark wake state, but operate at a lower clocking frequency than during normal operation. Certain heat generators may be turned off during the dark wake state including a graphics processing unit. Some operations may continue during the dark wake state including synchronizing data between devices. At block  610 , the processing logic causes the one or more processing units to execute software code (instructions) to perform the one or more background tasks that were previously deferred during normal operation. Blocks  609   a - c  and  610  may be performed concurrently or substantially at the same time. 
     At block  616 , the processing logic causes the system to enter a second low power state (e.g., sleep state) for a certain time period (e.g., 30 minutes) in response to the sleep request. The control algorithm may determine the certain time period based on a type of platform (e.g., mobile device, laptop, desktop, etc.). The sleep state is a low power state with the one or more processing units being turned off and not executing software code while other heat generators (e.g., memory are also turned off). At block  618 , the processing logic causes the system to enter the first low power state (e.g., dark wake state with disabled cooling mechanism) for a certain time period (e.g., 30 minutes, 1 hour) that is determined by the control algorithm in response to the sleep request. At block  620 , the processing logic causes the one or more processing units to execute software code (instructions) to perform background tasks that were previously deferred during normal operation or not completed at block  610 . In this manner, the system switches between the first and second low power states as needed to complete the background tasks without needing to trigger the cooling mechanism and potentially make the user aware of the operations of the system. The flow of the method  600  will return to block  602  and the normal operational mode if a user begins using the system at any point in time. 
       FIG. 6   b  illustrates a flow diagram in one embodiment of the present invention for a computer-implemented method  601  for thermal-based acoustic management in a data processing system. The computer-implemented method  601  is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine or a system), or a combination of both. In one embodiment, the computer implemented method  601  is performed by processing logic and a system management controller. 
     Blocks  602 - 606 ,  609   a - 609   c , and  610  of method  601  are performed in the same or similar manner as described for the method  600 . The method  601  includes an additional optional block  609   d  that sets a time period for the first low power state. At blocks  609   a - d , the system management controller (SMC) performs several operations concurrently. At block  609   a , the SMC executes a thermal management algorithm, which sets a clocking frequency for the one or more processing units. At block  609   b , the SMC executes a control algorithm to determine, under a current load, when a cooling mechanism (e.g., fan) will need to be turned on to cool the system and prevent an overheating condition. At block  609   c , the system management controller optionally sends a sleep request to the operating system (OS) prior to the system needing to activate the cooling mechanism based on the determination of the control algorithm. The control algorithm reacts to a change in temperature (e.g., temperature rise) in determining when a cooling mechanism will be needed. The control algorithm limits power to control heat. The time period for the first low power state may be set at block  609   d  and this time period may expire prior to a cooling mechanism being needed. The setting of this time period may preclude the need for a sleep request. At block  610 , the processing logic causes the one or more processing units to execute software code (instructions) to perform the one or more background tasks that were previously deferred during normal operation. Blocks  609   a - d  and  610  may be performed concurrently or substantially at the same time. 
     At block  616 , the processing logic causes the system to enter a second low power state (e.g., sleep state) for a certain time period (e.g., 30 minutes) in response to the sleep request. The control algorithm may determine the certain time period based on a type of platform (e.g., mobile device, laptop, desktop, etc.). The sleep state is a low power state with the one or more processing units being turned off and not executing software code while other heat generators (e.g., memory are also turned off). Upon expiration of the time period of the second low power state, the method  601  returns to block  606  and enters the system into the first low power state. In this manner, the system switches between the first and second low power states as needed to complete the background tasks without needing to trigger the cooling mechanism and potentially make the user aware of the operations of the system. The flow of the method  601  will return to block  602  and the normal operational mode if a user begins using the system at any point in time. 
       FIG. 3  illustrates a timeline for controlling power states of a system in another embodiment of the present invention. The system may include a power ON state  306 , a dark wake state  308 , and a sleep state  310 . The power ON state  306  may be used by a user during time period  320  for performing normal operations. Power assertion  304  represents a background task that is deferred during normal operation and waits until a user is not using the system and a low power state exists such as dark wake state. 
     At time period  322 , the system is not being used by a user in the power ON state and the OS determines that the system can safely transition to the dark wake state without needing to use the cooling mechanism. At time period  324 , the power assertion  304  is executed beginning at point  305 . The OS may determine the time period  324  for performing one or more power assertions before it is necessary to use a cooling mechanism. At time period  326 , the system transitions to the sleep state  310  to avoid needing to use the cooling mechanism (e.g., cooling fan). The system management controller determines whether the system will remain in a dark wake state or transition to the sleep state based on monitoring the temperature of the system. At time period  328 , the system is allowing the one or more processing units to cool with the processors being turned off. The OS may determine the time period  328  for cooling the system or this time period may be predetermined. At time period  330 , the system again transitions to the dark wake state. The OS may determine the time period  332  for performing one or more power assertions before it is necessary to use a cooling mechanism. The system management controller determines whether the system will remain in a dark wake state or transition to the sleep state based on monitoring the temperature of the system. 
     In some embodiments, the methods, systems, and apparatuses of the present disclosure can be implemented in various devices including electronic devices, consumer devices, data processing systems, desktop computers, portable computers, wireless devices, cellular devices, tablet devices, handheld devices, multi touch devices, multi touch data processing systems, any combination of these devices, or other like devices.  FIGS. 4 and 5  illustrate examples of a few of these devices, which are capable of performing background tasks in a low power state to implement the method of the present disclosure. 
       FIG. 4  is a block diagram of one embodiment of the present invention of a data processing system that generally includes one or more processing units, a display device, and built-in image capturing device. This data processing system  900  may include one or more processing units  902  and a memory  904 , which are coupled to each other through a bus  906 . The data processing system  900  may optionally include a cache  908  which is coupled to the one or more processing units  902 . The data processing system may optionally include a storage data processing system  940  which may be, for example, any type of solid-state or magnetic memory data processing system. Storage data processing system  940  may be or include a computer-readable medium  941 . Computer-readable medium  941  can be any device or medium (e.g., storage device, storage medium, non-transitory medium) that can store code and/or data for use by one or more processing units  902 . Medium  941  can include a memory hierarchy, including but not limited to cache, main memory and secondary memory. The memory hierarchy can be implemented using any combination of RAM (e.g., SRAM, DRAM, DDRAM), ROM, FLASH, magnetic and/or optical storage devices, such as disk drives, magnetic tape, CDs (compact disks) and DVDs (digital video discs). Medium  941  may also include a transmission medium for carrying information-bearing signals indicative of computer instructions or data (with or without a carrier wave upon which the signals are modulated). For example, the transmission medium may include a communications network, including but not limited to the Internet (also referred to as the World Wide Web), intranet(s), Local Area Networks (LANs), Wide Local Area Networks (WLANs), Storage Area Networks (SANs), Metropolitan Area Networks (MAN) and the like. 
     One or more processing units  902  run various software components stored in medium  941  to perform various functions for system  900 . In some embodiments, the software components include operating system  942 , communication module (or set of instructions), input/output processing module (or set of instructions), graphics module (or set of instructions), one or more applications (or set of instructions), and module [or set of instructions]. These modules (i.e., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise rearranged in various embodiments. 
     In some embodiments, medium  941  may store a subset of the modules and data structures identified above. Furthermore, medium  941  may store additional modules and data structures not described above. 
     One or more applications can include any applications installed on system  900 , including without limitation, a browser, address book, contact list, email, instant messaging, word processing, keyboard emulation, widgets, JAVA-enabled applications, encryption, digital rights management, voice recognition, voice replication, location determination capability (such as that provided by the global positioning system (GPS), a music player, etc. 
     System  900  may further include a system management controller  946  (e.g., microcontroller) for performing the method/functions as described herein. In one embodiment, the system management controller  946  may at least function to perform the thermal management algorithm and control algorithm and communicate with the operating system (OS)  942  to perform the functions/methods of the present disclosure as discussed herein. For example, the system management controller  946  may send instructions to the OS  942  to throttle or reduce performance of the system. During a fanless dark wake state, the throttling of the one or more processing units allows the system to perform background tasks while avoiding use of a cooling mechanism such as a cooling fan. The system management controller  946  may send instructions to the OS  942  indicating a wake type (e.g., power ON (user state), fanless dark wake state, dark wake state) from a sleep state. 
     In one embodiment, the system  900  includes one or more processing units  902  to execute instructions and a system management controller  946  coupled to the one or more processing units. The system management controller provides instructions to reduce a clocking frequency of the one or more processing units during a non-user low power state (e.g., fanless dark wake state) in comparison to a clocking frequency during normal operation of the system. The one or more processing units execute instructions to cause at least one previously deferred background task to be executed while in the non-user low power state. A user of the system is not aware that the system enters the non-user low power state and performs the one or more deferred background tasks because no cooling mechanism (e.g., cooling fan) is needed during the non-user low power state (e.g., fanless dark wake state). 
     The system management controller executes a control algorithm to determine, under a current load, when a cooling mechanism will need to be turned on to cool the data processing system and prevent an overheating condition. The system management controller sends a sleep request to an operating system (OS)  942  of the data processing system prior to the data processing system needing to activate the cooling mechanism based on the determination of the control algorithm. The system management controller may provide instructions to cause the data processing system to enter another non-user low power state (e.g., sleep state) for a certain time period in response to the sleep request. 
     This data processing system may also optionally include a display controller and display device  910  which is coupled to the other components through the bus  906 . The display device  910  may include an integrated image capturing device  959 . One or more input/output controllers  912  are also coupled to the bus  906  to provide an interface for input/output devices  914  and to provide an interface for one or more sensors  916  which are for sensing user activity. The bus  906  may include one or more buses connected to each other through various bridges, controllers, and/or adapters as is well known in the art. The input/output data processing systems  914  may include a keypad or keyboard or a cursor control data processing system such as a touch input panel. Furthermore, the input/output devices  914  may include a network interface which is either for a wired network or a wireless network (e.g. an RF transceiver). The sensors  916  may be any one of the sensors described herein including, for example, a proximity sensor or an ambient light sensor. In certain embodiments of the present disclosure, the data processing system  900  can be used to implement at least some of the methods discussed in the present disclosure. 
     In one embodiment, a computer readable non-transitory medium stores executable program instructions which when executed cause a data processing system to perform a computer-implemented method such as the methods of  FIG. 1   a  or  1   b . The method includes automatically deferring one or more background tasks during normal operation of a system, causing the system to enter a first low power state for a first time period, causing the system to enter a second low power state for a second time period, and performing at least one of the deferred background tasks while in the second low power state. A user of the system may not be aware that the system enters the second low power state and performs the one or more deferred background tasks units. 
     The method further includes executing a thermal management algorithm to set a clocking frequency for the one or more processing units at a lower level than a clocking frequency during normal operation, executing a control algorithm to determine, under a current load, when a cooling mechanism will need to be turned on to cool the system and prevent an overheating condition, sending a sleep request to an operating system (OS) of the system prior to the system needing to activate the cooling mechanism based on the determination of the control algorithm, causing the system to enter the first low power state for a third time period in response to the sleep request, and causing the system to enter the second low power state for a fourth time period that is determined by the control algorithm in response to the sleep request. 
     In another embodiment, a computer readable non-transitory medium stores executable program instructions which when executed cause a data processing system to perform a computer-implemented method such as the methods of  FIGS. 6   a  and  6   b . The method includes automatically deferring one or more background tasks during normal operation of a system, causing the system to enter a first low power state for a first time period, and performing at least one of the deferred background tasks while in the first low power state. A user of the system may not be not aware that the system enters the first low power state and performs the one or more deferred background tasks units. 
     The method further includes executing a control algorithm to determine, under a current load, when a cooling mechanism will need to be turned on to cool the system and prevent an overheating condition, sending a sleep request to an operating system (OS) of the system prior to the system needing to activate the cooling mechanism based on the determination of the control algorithm, causing the system to enter a second low power state for a second time period in response to the sleep request, and causing the system to enter the first low power state for a third time period that is determined by the control algorithm. 
       FIG. 5  is a block diagram of one embodiment of the present invention of system  1000  that generally includes one or more computer-readable mediums  1001 , processing system  1004 , Input/Output (I/O) subsystem  1006 , radio frequency (RF) circuitry  1008 , and audio circuitry  1010 . These components may be coupled by one or more communication buses or signal lines  1003 . 
     It should be apparent that the architecture shown in  FIG. 5  is only one example architecture of system  1000 , and that system  1000  could have more or fewer components than shown, or a different configuration of components. The various components shown in  FIG. 5  can be implemented in hardware, software, firmware or any combination thereof, including one or more signal processing and/or application specific integrated circuits. 
     RF circuitry  1008  is used to send and receive information over a wireless link or network to one or more other devices and includes well-known circuitry for performing this function. RF circuitry  1008  and audio circuitry  1010  are coupled to processing system  1004  via peripherals interface  1016 . Interface  1016  includes various known components for establishing and maintaining communication between peripherals and processing system  1004 . Audio circuitry  1010  is coupled to audio speaker  1050  and microphone  1052  and includes known circuitry for processing voice signals received from interface  1016  to enable a user to communicate in real-time with other users. In some embodiments, audio circuitry  1010  includes a headphone jack (not shown). 
     Peripherals interface  1016  couples the input and output peripherals of the system to one or more processing units  1018  and computer-readable medium  1001 . One or more processing units  1018  communicate with one or more computer-readable mediums  1001  via controller  1020 . Computer-readable medium  1001  can be any device or medium (e.g., storage device, storage medium) that can store code and/or data for use by one or more processing units  1018 . Medium  1001  can include a memory hierarchy, including but not limited to cache, main memory and secondary memory. The memory hierarchy can be implemented using any combination of RAM (e.g., SRAM, DRAM, DDRAM), ROM, FLASH, magnetic and/or optical storage devices, such as disk drives, magnetic tape, CDs (compact disks) and DVDs (digital video discs). Medium  1001  may also include a transmission medium for carrying information-bearing signals indicative of computer instructions or data (with or without a carrier wave upon which the signals are modulated). For example, the transmission medium may include a communications network, including but not limited to the Internet (also referred to as the World Wide Web), intranet(s), Local Area Networks (LANs), Wide Local Area Networks (WLANs), Storage Area Networks (SANs), Metropolitan Area Networks (MAN) and the like. 
     One or more processing units  1018  run various software components stored in medium  1001  to perform various functions for system  1000 . In some embodiments, the software components include operating system  1022 , communication module (or set of instructions)  1024 , touch processing module (or set of instructions)  1026 , graphics module (or set of instructions)  1028 , one or more applications (or set of instructions)  1030 , and module [or set of instructions]  1038 . The module  1038  corresponds to a set of instructions for performing one or more functions described above and the methods described in this application (e.g., the computer-implemented methods and other information processing methods described herein). These modules (i.e., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise rearranged in various embodiments. 
     In some embodiments, medium  1001  may store a subset of the modules and data structures identified above. Furthermore, medium  1001  may store additional modules and data structures not described above. 
     Operating system  1022  includes various procedures, sets of instructions, software components and/or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates communication between various hardware and software components. 
     Communication module  1024  facilitates communication with other devices over one or more external ports  1036  or via RF circuitry  1008  and includes various software components for handling data received from RF circuitry  1008  and/or external port  1036 . 
     Graphics module  1028  includes various known software components for rendering, animating and displaying graphical objects on a display surface. In embodiments in which touch I/O device  1012  is a touch sensitive display (e.g., touch screen), graphics module  1028  includes components for rendering, displaying, and animating objects on the touch sensitive display. 
     One or more applications  1030  can include any applications installed on system  1000 , including without limitation, a browser, address book, contact list, email, instant messaging, word processing, keyboard emulation, widgets, JAVA-enabled applications, encryption, digital rights management, voice recognition, voice replication, location determination capability (such as that provided by the global positioning system (GPS), a music player, etc. 
     Touch processing module  1026  includes various software components for performing various tasks associated with touch I/O device  1012  including but not limited to receiving and processing touch input received from I/O device  1012  via touch I/O device controller  1032 . 
     I/O subsystem  1006  is coupled to touch I/O device  1012  and one or more other I/O devices  1014  for controlling or performing various functions. Touch I/O device  1012  communicates with processing system  1004  via touch I/O device controller  1032 , which includes various components for processing user touch input (e.g., scanning hardware). One or more other input controllers  1034  receives/sends electrical signals from/to other I/O devices  1014 . Other I/O devices  1014  may include physical buttons, dials, slider switches, sticks, keyboards, touch pads, additional display screens, or any combination thereof. 
     If embodied as a touch screen, touch I/O device  1012  displays visual output to the user in a GUI. The visual output may include text, graphics, video, and any combination thereof. Some or all of the visual output may correspond to user-interface objects. Touch I/O device  1012  forms a touch-sensitive surface that accepts touch input from the user. Touch I/O device  1012  and touch screen controller  1032  (along with any associated modules and/or sets of instructions in medium  1001 ) detects and tracks touches or near touches (and any movement or release of the touch) on touch I/O device  1012  and converts the detected touch input into interaction with graphical objects, such as one or more user-interface objects. In the case in which device  1012  is embodied as a touch screen, the user can directly interact with graphical objects that are displayed on the touch screen. Alternatively, in the case in which device  1012  is embodied as a touch device other than a touch screen (e.g., a touch pad), the user may indirectly interact with graphical objects that are displayed on a separate display screen embodied as I/O device  1014 . 
     Embodiments in which touch I/O device  1012  is a touch screen, the touch screen may use LCD (liquid crystal display) technology, LPD (light emitting polymer display) technology, OLED (organic LED), or OEL (organic electro luminescence), although other display technologies may be used in other embodiments. 
     Feedback may be provided by touch I/O device  1012  based on the user&#39;s touch input as well as a state or states of what is being displayed and/or of the computing system. Feedback may be transmitted optically (e.g., light signal or displayed image), mechanically (e.g., haptic feedback, touch feedback, force feedback, or the like), electrically (e.g., electrical stimulation), olfactory, acoustically (e.g., beep or the like), or the like or any combination thereof and in a variable or non-variable manner. 
     System  1000  also includes power system  1044  for powering the various hardware components and may include a power management system, one or more power sources, a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator and any other components typically associated with the generation, management and distribution of power in portable devices including a system management controller  1045  that communicates with the operating system  1022  to provide the functions/methods of the present disclosure. 
     In some embodiments, peripherals interface  1016 , one or more processing units  1018 , and memory controller  1020  may be implemented on a single chip, such as processing system  1004 . In some other embodiments, they may be implemented on separate chips. 
     The present disclosure can relate to an apparatus for performing one or more of the operations described herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a machine (e.g. computer) readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), erasable programmable ROMs (EPROMs), electrically erasable programmable ROMs (EEPROMs), flash memory, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a bus. 
     A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, machines store and communicate (internally and with other devices over a network) code and data using machine-readable media, such as machine storage media (e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory). 
     In the foregoing specification, the disclosure has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of the disclosure as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.

Metadata:
Filing Date: 20120914
Publication Date: 20150804
Grant Date: 20150804
Priority Date: 20120608
Inventors: REECE RUSSELL DEAN
WHITMAN JEFFREY D.
COX KEITH
Assignee: APPLE INC
CPC Classifications: [{"code": "G06F9/4843", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/206", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F1/324", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F1/329", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F9/485", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/3296", "inventive": true, "first": false, "tree": "[]"}, {"code": "Y02B60/1285", "inventive": false, "first": false, "tree": "[]"}, {"code": "Y02B60/144", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F1/3234", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F1/3234", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F1/329", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/324", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F9/485", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/3296", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/3296", "inventive": true, "first": false, "tree": "[]"}, {"code": "Y02D10/00", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F1/206", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F1/206", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F9/4843", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/329", "inventive": true, "first": false, "tree": "[]"}, {"code": "Y02D10/00", "inventive": false, "first": false, "tree": "[]"}]
Family ID: 49716268