WO2022039744A1 - Temperature control of computing device - Google Patents

Temperature control of computing device Download PDF

Info

Publication number
WO2022039744A1
WO2022039744A1 PCT/US2020/047180 US2020047180W WO2022039744A1 WO 2022039744 A1 WO2022039744 A1 WO 2022039744A1 US 2020047180 W US2020047180 W US 2020047180W WO 2022039744 A1 WO2022039744 A1 WO 2022039744A1
Authority
WO
WIPO (PCT)
Prior art keywords
processes
computing device
processor
execution
fan
Prior art date
Application number
PCT/US2020/047180
Other languages
French (fr)
Inventor
Lee Atkinson
Poyu CHANG
Lung-Chi Huang
Wei-Chun Chen
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2020/047180 priority Critical patent/WO2022039744A1/en
Publication of WO2022039744A1 publication Critical patent/WO2022039744A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands

Definitions

  • a computing device may include a processor to execute a plurality of processes. These processes may demand resources such as computing time of the processor, memory, and other storage resources, which may require power, and in turn, cause generation of heat.
  • resources such as computing time of the processor, memory, and other storage resources, which may require power, and in turn, cause generation of heat.
  • a computing device may include a component to remove or transport the generated heat from the computing device. For example, a cooling component such as a fan may be used to reduce a temperature of the computing device in response to the heat generated.
  • FIG. 1 illustrates an example of a computing device including components coupled to the computing device such as a processor and a cooling device;
  • FIG. 2 illustrates an example of an Operating System (OS) executing an OS core running in combination with the plurality of processes and communicating with a component of the computing device;
  • OS Operating System
  • FIG. 3 illustrates an example of a process management application that manages execution activities of the plurality of processes executed in combination with the OS
  • FIG. 4 is a diagram of thermal management by adjusting an execution priority of a process, according to an example
  • FIG. 5 is a diagram of thermal management by adjusting an execution priority of a process, according to an example
  • FIG. 6 is a diagram of thermal management by adjusting an execution priority of a process, according to an example
  • FIG. 7 is a diagram of an example of the thermal management by adjusting an execution priority of a process.
  • a computing device 100 may include a processor to execute machine readable instructions to run processes and perform tasks.
  • various types of the computing device 100 may include a computer, a personal computer, a laptop, a server, a handheld computer, a mobile device, an industrial computing device, a commercial computing device, a control device, a smart phone, a tablet, etc.
  • FIG. 1 illustrates an example of a computing device 100 including components coupled to the computing device such as a processor and a cooling device.
  • the computing device 100 may include some or all of the components illustrated in FIG. 1 and may also include a component other than the components illustrated in FIG. 1.
  • the computing device 100 may be coupled with or may include a basic input/output system (BIOS).
  • BIOS basic input/output system
  • BIOS refers to hardware or hardware and instructions to initialize, control, or operate a computing device 100 prior to the execution of an operating system (OS) of the computing device 100.
  • OS operating system
  • Instructions included within a BIOS may be software, firmware, microcode, or other programming that defines or controls functionality or operation of a BIOS.
  • a BIOS may be implemented using instructions, such as platform firmware of a computing device 100, executable by a processor.
  • a BIOS may operate or execute prior to the execution of the OS of a computing device 100.
  • BIOS may initialize, control, or operate components such as hardware components of a computing device 100 and may load or boot the OS of computing device 100.
  • a BIOS may provide or establish an interface between hardware devices or platform firmware of the computing device 100 and an OS of the computing device 100, via which the OS of the computing device 100 may control or operate hardware devices or platform firmware of the computing device 100.
  • a BIOS may implement the Unified Extensible Firmware Interface (UEFI) specification or another specification or standard for initializing, controlling, or operating a computing device 100.
  • UEFI Unified Extensible Firmware Interface
  • the computing device 100 may include any suitable processor architecture and/or any suitable number of processors according to an example.
  • the computing device 100 may include a processor 102 executing various machine readable codes for a plurality of processes, to provide computing and processing operations for the computing device 100.
  • a process may refer to an application, a task, or any other executing activities, such as a set of machine readable codes or instructions, executable by the processor 102, which may include device drivers, programming tools, utility programs, machine readable codes libraries, application programming interfaces (APIs), and other various types of applications.
  • APIs application programming interfaces
  • the processor 102 may be arranged to provide processing or computing resources to the computing device 100.
  • the processor 102 may be responsible for executing various processes such as system applications and other applications, such as user applications, to provide computing and processing operations for the computing device 100.
  • processors are to be interpreted to include various types of processors.
  • various types of processors may include a processing unit, logic unit, programmable gate array, a central processing unit (CPU) using any suitable processor or logic device, such as a general purpose processor, a graphics processing unit (GPU), a digital signal processor (DSP), a math co-processor, programmable gate arrays, or microcontrollers.
  • the processor 102 may include, or be implemented as, a chip multiprocessor (CMP), dedicated processor, embedded processor, media processor, input/output (I/O) processor, co-processor, microprocessor, controller, microcontroller, application specific integrated circuit (ASIC), field programmable gate array (FPGA), programmable logic device (PLD), or other processing device in accordance with the described examples.
  • CMP chip multiprocessor
  • I/O input/output
  • co-processor co-processor
  • microprocessor controller
  • microcontroller application specific integrated circuit
  • FPGA field programmable gate array
  • PLD programmable logic device
  • the operations may all be performed by a single processor or divided amongst several processors.
  • the computing device 100 may include, coupled to, connected to, or combined with a component 101 , which may be an internal component or an external component externally connected to the computing device 100 or in communication with the computing device 100 via a wire or wirelessly.
  • a component 101 may include the processor 102, memory 103, power supply 120, cooling device 150, data bus, Input/Output Interface 170, input device 160, output device 130 such as a display device, wiring, and other various types of a component 105 that can be internally or externally connected to the computing device 100 via a wire or wirelessly, such as a monitor and an image forming apparatus.
  • a component 101 may be added by being inserted into an internal slot or socket or a slot or socket exposed or provided externally, and/or that can be connected wireless or by a wire.
  • the processor 102 may communicate or exchange signals with a component 101 associated with the computing device 100, such as the memory 103, for example, through a data bus comprising any suitable interface and/or bus architecture.
  • the data bus may comprise any suitable interface and/or bus architecture for allowing the processor 102 to access the memory 103.
  • the memory 103 may be integrated along with the processor 102 or may be separate from the processor 102 and connected through the data bus.
  • some portion or the entire memory 103 may be included on the same integrated circuit as the processor 102.
  • some portion or the entire memory 103 may be disposed on an integrated circuit or another medium (e.g., solid state drive, hard disk drive) external to the integrated circuit of processor 102.
  • the computing device 100 may comprise an expansion slot to support a multimedia and/or memory 103 card, for example.
  • the memory 103 may be implemented using any non-transitory and/or transitory machine readable or computer-readable media capable of storing data such as volatile memory or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or re-writeable memory, and so forth.
  • various types of machine readable storage media may be implemented, such as random-access memory (RAM), dynamic RAM (DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), read-only memory (ROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory (e.g., NOR or NAND flash memory), content addressable memory (CAM), polymer memory (e.g., ferroelectric polymer memory), phase-change memory, ovonic memory, ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, magnetic or optical cards, or any other type of media suitable for storing information.
  • RAM random-access memory
  • DRAM dynamic RAM
  • DDRAM Double-Data-Rate DRAM
  • SDRAM synchronous DRAM
  • SRAM static RAM
  • ROM read-only memory
  • PROM programmable ROM
  • EPROM eras
  • the computing device 100 may be coupled with or may include an input/output (I/O) interface 170 coupled to the processor 102.
  • the I/O interface 170 may comprise one or more I/O devices such as a serial connection port, an infrared port, various types of wireless capabilities to enable wire and/or wireless communication connection.
  • computing device 100 may be arranged to transfer and/or synchronize information with another computing device 100, a server, or a computer system.
  • the computing device 100 may be coupled with or connected to, or may include an input device 160.
  • various types of an input device 160 may be implemented, which may include a keypad such as an alphanumeric keypad and a keyboard, a touch panel such as a touch screen or a touchpad, and/or a pointer device such as a pointer and a mouse.
  • the computing device 100 may include an input device 160 which may include various keys, buttons, and switches.
  • the computing device 100 may be coupled with or include an output device 130 such as a display device coupled to the processor 102.
  • the display device may comprise any suitable visual interface for displaying content to a user of the computing device 100.
  • the display device may be implemented by a liquid crystal display (LCD) such as a touch- sensitive color (e.g., 16-bit color) thin-film transistor (TFT) LCD screen.
  • the touch-sensitive LCD may be used with a stylus and/or a handwriting recognizer program.
  • the processor 102 may be coupled to various audio/video (A/V) devices, as the output device 130 and/or the input device 160, that support A/V capability of the computing device 100.
  • A/V devices may include, for example, a display device, a microphone, a speaker, an audio port to connect an audio headset, an audio coder/decoder (codec), an audio player, a digital camera, a video camera, a video codec, a video player, and other types of A/V devices.
  • the processor 102 may be coupled to a power supply 120 arranged to supply and manage power to the elements of the computing device 100.
  • the power supply 120 may be implemented by a rechargeable battery, such as a removable and rechargeable lithium-ion battery to provide direct current (DC) power, and/or an alternating current (AC) adapter to draw power from a standard AC main power supply.
  • the computing device 100 may include a power supply 120 and a cooling device 150.
  • the power supply 120 and/or the cooling device 150 may be in communication with processor 102.
  • the power supply 120 may be managed based on a power management process, which may obtain, process, and/or utilize information that indicates a degree of power consumption, and/or a battery power level.
  • the computing device 100 may include a cooling device 150
  • the cooling device 150 may be implemented as a fan.
  • a component coupled with the computing may consume power and generate heat, which may be removed to cool the component or the computing device 100 by the cooling device 150, which may generate noise that may be heard by a user of the computing device 100 and may interrupt the user.
  • machine readable codes for a system generally may assist in the running of the computing device 100 with a process, e.g., a plurality of processes, which may be executed for controlling, integrating, and managing the individual hardware components coupled with or included in the computing device 100 and/or running various types of applications coded based on machine readable codes.
  • various types of machine readable codes may be implemented, which may include an operating system (OS), device drivers, programming tools, utility programs, machine readable codes libraries, application programming interfaces (APIs), and so forth.
  • OS operating system
  • APIs application programming interfaces
  • the computing device 100 may use any suitable OS in accordance with the described examples, such as MICROSOFT® WINDOWS OS and other various types of OS.
  • the processor 102 may execute a plurality of processes based on information indicating execution activities of the plurality of processes, such as process schedule information, task schedule information, and/or scheduler information.
  • schedule information may be obtained, organized, updated and/or managed by an application or a process executed by the processor, such as a process scheduler and process manager.
  • various types of process schedule applications may be implemented, such as a task scheduler or a task manager, as a part of the OS or an application executable in combination with the OS.
  • the OS may be provided for scheduling the execution activities by the processor.
  • a computing device 100 capable of executing a plurality of processes or applications in a multi-tasking processing may implement a scheduler activity or a process management activity by the OS kernel.
  • the OS responds to requests by user mode processes or applications and then allocates computing resources (e.g. CPU or GPU) for each respective process, application, and/or its tasks.
  • computing resources e.g. CPU or GPU
  • the OS may operate in a pre-emptive multi-tasking fashion, e.g., by providing time-slices of the CPU for each process/application or in a round-robin method whereby each process/application terminates with a nothing-to-run state releasing the computing resources to then serve needs of another process, application and/or task.
  • the OS may determine the amount of CPU time allocated for each process.
  • the OS may also affect an affinity that establishes not only when a process is provided computing resource, but also can assign which of the CPU cores is used for any specific operation or task.
  • the OS may assign some operations/tasks to a Big CPU core that has relatively high performance, long pipeline and Superscalar speculative out of order execution — or to a Little CPU core that has relatively lower performance but operates more efficiently.
  • the OS may detect, measure, estimate, determine and/or predict the CPU time used by each process/application, or calculate the energy used by each process/application via information regarding the CPU core, such as its frequency and voltage while operating the thread.
  • FIG. 2 illustrates an example of an Operating System (OS) executing an OS core running in combination with the plurality of processes and communicating with a component of the computing device.
  • OS Operating System
  • the OS being executed or run on the computing device 100 may be executing an operating system (OS) core 111 that may include the OS component utility applications/processes 112, such as a task manager, process manager, and/or resource monitor.
  • the OS core 111 including the OS component utility applications/processes may be controlling, managing, and/or may be running in combination with, the plurality of processes that may include a first process 113, second process 114, a third process 115, and so on, which may have or may be expected to have varying degrees of user interactions, and which may be higher priority or lower priority applications, such as a user application or foreground application and background applications.
  • the OS core 111 may communicate with the component 101 .
  • the OS core 111 may communicate with the plurality of processes via a communication channel.
  • the OS core 111 including the OS component utility applications/processes 112 may be controlling and/or managing and/or may run in combination with the thermal management process 116.
  • the thermal management process 116 may be in communication with one of the OS component utility applications/processes 112 such as a task manager, process manager, and/or resource monitor, and may obtain information indicating execution activities of the plurality of processes.
  • the process management process 112 may monitor the plurality of processes and may provide information about execution activities of the plurality of the processes executed by or running on the computing device 100, and/or the various statuses of the computer, such as processing load by a process among the plurality of processes, such as CPU usage and/or memory 103 usage.
  • the process management process 112 may be capable of terminating, postponing, or delaying a process among the plurality of processes, and/or may assign, indicate and/or change an execution activity of or scheduling priority of the process.
  • the process management process 112 may obtain various types of information regarding the plurality of processes, such as their process identifier and group identifier.
  • FIG. 3 illustrates an example of the OS component utility process 112 being a process management process/application 112 that manages execution activities of the plurality of processes executed in combination with the OS.
  • the process management process/application 112 may manage execution activities of the plurality of processes and may obtain, generate, or collect various types of information regarding the plurality of processes, such as processes status, processing load, memory 103 load, storage load rate, network load, power load.
  • the process management process/application 112 may obtain and manage information regarding the execution priorities of processes among the plurality of processes.
  • the thermal management process 116 may be executed based on machine readable codes, such as an OS, an application executed in combination or associated with the OS, or an application independent of the OS or software, or by an embedded controller in the system.
  • machine readable codes such as an OS, an application executed in combination or associated with the OS, or an application independent of the OS or software, or by an embedded controller in the system.
  • An example of the thermal management application/process 116 based on the machine readable codes may include the Advanced Configuration and Power Interface (“ACPI”) interface.
  • ACPI Advanced Configuration and Power Interface
  • the thermal management process 116 may obtain or receive a measurement of power consumption amount or rate and/or the temperature in the computing device 100 and/or the temperature of the component 101 , such as the processor 102, or the temperature of the external component.
  • the temperature when heat is generated by a component 101 coupled with the computing device 100 and may increase the temperature of the component or in the computing device 100, the temperature may be decreased by removing heat, which may be removed to cool the components or the computing device 100 by the cooling device 150.
  • Such cooling may generate noise, such as noise generated from increased fan speed that may be heard by a user of the computing device 100 and may interrupt the user.
  • the user when the user is not aware of a process or application running in the background not interacting with the user, the user may perceive the noise being generated unexpectedly and/or unpredictably to the user as a ghost driven fan with increased noise, and may possibly perceive the condition as degraded experience, for example, by forming an impression that the computing device 100 is ghost-driven or that ghost applications are draining the system resources.
  • cooling rate of the cooling device 150 such as a speed of a fan
  • the cooling rate such as the fan speed may change not considering or not matching the user’s foreground use of the computing device 100, which may create an interruption unexpected by the user.
  • a cooling device 150 in the computing device 100 such as a personal computer, mobile device, or a server, may adapt to the power consumed by the computing device 100, e.g., because of GPU and CPU activity.
  • the power consumed by the computing device 100 is due to the processor 102 having a processing load of executing a plurality of processes.
  • the processor 102 may execute the plurality of processes, for example, in a multi-task fashion.
  • the processor may execute the plurality of processes based on information indicating execution activities and/or execution priorities of the plurality of processes.
  • the plurality of processes may include a user mode process.
  • lower priority processes or lower priority applications such as low priority processes or low priority applications, may be presented directly a user interface but may have low user interaction.
  • a lower priority process or a low priority process may include an open browser pointed to a website that is churning ad activity thru videos in the background, which may use substantial system resources or add a processing load on the processor even while the browser tab is not visible or in interaction with the user.
  • the plurality of processes such as user mode applications can operate as a foreground or background process.
  • a background process or a background application may be a process or an application having a lower execution priority than a foreground process or a foreground application.
  • a foreground process or a foreground application may be a process or an application having a higher execution priority than a background process or a background application.
  • the foreground process or the foreground application may include a process the user is providing action for, a process receiving, assuming and/or tagged to assume the user’s action, engagement and/or attention, and/or a process interactive with the user, assumed to be interactive with the user, and/or indicated to be interactive with the user, and/or an application receiving or indicated to receive a user’s input.
  • the background process or the background application may include a process not being able to receive the user’s input or not receiving the user’s input, a process the user is not providing action for or not being able to provide an action for, a process not receiving or not being able to receive, not assuming and/or not indicated to assume the user’s attention, and/or a process not being interactive with the user or not being able to be interactive with the user, not assumed to be interactive with the user, and/or not indicated to be interactive with the user.
  • the background process may include an anti-virus application, storage management application, spyware, certain OS- related functions, printing a document, and/or accessing the network.
  • a background process may operate without a direct user interface, and therefore, without any user’s expectation of performance or quality of service.
  • a background application may include a “Daemon” application, which may spawn and operate without user control.
  • a background process may be a process other than a foreground process among the plurality of processes.
  • the user may find different types of processes running in the background that the user is not aware of, such as an anti-virus application, storage management application, and spyware, or processes that have been running in the foreground and currently running in the background, such as an application window moved to the background or covered over another application window and a browser tab not currently selected by the user or hidden in a web browser application, such as an open browser pointed to a website that is churning ad activity thru videos in the background, which uses significant system resources or add a processing load on the processor even while the browser tab is not visible or in interaction with the user.
  • a foreground process may be a process other than a background process among the plurality of processes.
  • foreground and background applications may be tuned or arranged.
  • the computing device is a computer for personal use, there may be less user control by a user at a non- administrative level over processing priorities or there may be none.
  • system performance and cooling device 150 behavior may be judged on the visible foreground activity. For example, from a user perspective, system performance and cooling device 150 behavior may be judged based on the activities of the computing device 100 that can be perceived by the user, such as foreground activities.
  • a thermal condition may be altered or modified to avoid generating noise or increasing fan speed in view of the user’s perspective and/or expectation on the noise level such as noise from the cooling device 150.
  • the thermal management of computing device 100 may provide options to the user to select a relatively silent mode or silent preference of cooling, by causing some or all applications to throttle down in a non-discriminative manner, instead of increasing the fan speed.
  • the CPU speed may be reduced or executions of processes may be delayed or postponed, so as to decrease the generation of heat instead of increasing cooling rate of cooling device 150, such as increasing fan speed, to accelerate or increase the removal rate or transfer rate of heat in the system.
  • throttling down some or all applications in a non-discriminative manner slowing the CPU processes or delaying executions of applications globally slows the entire system.
  • the cooling rate of the cooling device 150 such as the speed of the fan, may be arranged, controlled, or managed to relatively match the user’s perspective, the user’s foreground use and/or the user’s expectation on the foreground use of the computing device 100, rather than solely or mainly based on the temperature or the temperature change.
  • the processor may selectively throttle down the lower priority process, or the low priority process, or the background process, to reduce the temperature in the computing device 100, for example, instead of accelerating the fan speed or prior to accelerating the fan speed.
  • power management or heat management such as fan speed
  • the variable may be changed, controlled, or maintained, for example, based on a control event to decrease the temperature, which may be based on a variable.
  • the variable may include temperature that is measured, predicted, estimated or determined.
  • the variable may include a thermal condition that is measured, predicted, estimated or determined.
  • the variable may include a power consumption level that is measured, predicted, estimated or determined.
  • the variable may include a processing load on the processor 102 that is being monitored, recorded, measured, predicted, estimated or determined.
  • power management or heat management such as fan speed
  • the term relative or relatively refers to relativeness to other processes or their qualities, such as lower or higher execution priority relative to other processes’ execution priorities
  • power management or heat management such as fan speed
  • an execution priority of a process among the plurality of processes may be adjusted to delay the execution of the process, while the cooling rate of the cooling device 150 such as the speed of the fan is being controlled to be maintained.
  • the cooling device 150 control such as a fan actuation
  • the cooling device 150 control may be controlled irrespective or independently of the thermal management by the thermal management process.
  • the cooling device 150 control such as a fan actuation, may be controlled in combination with and/or with respect to the thermal management by the thermal management process.
  • a thermal event may include an event indicating change or increase in temperature, such as a temperature of a component associated with or included in the computing device and temperature in the computing device.
  • a thermal event may include an event that infers, implies, estimate, or predict change or increase in the temperature, such as an event indicating a processing load increase on the processor and/or an event indicating power consumption increase by the computing device.
  • the amount, level, or degree of execution activities by or associated with the lower priority processes may be measured and is compared to either a threshold or used to calculate, estimate, predict, or determine the balance between system loads, such as processing loads, by the lower priority processes and higher priority processes, such as the balance between system loads, such as processing loads, by the background processes and the foreground processes.
  • the result of the comparison may be used to affect the execution activities, scheduling, or performance of a lower priority process among the lower priority processes, such as a background process among the background processes, instead of, or in addition to, or before modifying the fan speed.
  • the thermal management process or the OS may also prioritize the available computing resources for processes among the first set of processes.
  • the thermal management process may be a part of the OS, or an application independent of the OS or associate with the OS, or the OS itself.
  • a computing device 100 may include a cooling device 150, such as a fan, and a processor 102.
  • the processor 102 may, in response to a thermal event indicating an increase in temperature in the computing device, obtain process scheduler information indicating execution activities of a plurality of processes, respectively, and, prior to a control event to control actuation of the fan to decrease the temperature in response to the thermal event, and in response to a processing load on the processor 102 by a group of processes among the plurality of processes exceeding an available processing load of the processor 102 by a threshold, the processor 102 may adjust a priority of an execution activity of a process in the first group to cause a decrease in the temperature.
  • a computing device 100 may include cooling device 150, such as a fan, and a processor 102.
  • the processor 102 may, in response to a thermal event indicating an increase in temperature in the computing device, obtain process scheduler information indicating execution activities of a plurality of processes, respectively, and, prior to a control event to control actuation of the fan to decrease the temperature in response to the thermal event, in response to a first processing load on the processor 102 by a first group of processes among the plurality of processes exceeding a threshold load based on a second processing load on the processor by a second group of processes among the plurality of processes, the processor may adjust a priority of an execution activity of a process in the first group to cause a decrease in the temperature.
  • the computing device 100 may include cooling device 150 such as a fan and a processor to, in response to a thermal event indicating an increase in temperature in the computing device 100 or an increase in temperature of a component associated with the computing device 100, obtain information indicating execution activities of a plurality of processes, wherein the plurality of processes includes a first set of processes and a second set of processes, and wherein the first set has lower execution priority than the second set, and, in response to a load ratio exceeding a threshold, adjust an execution priority of a process in the first set to decrease or reduce the temperature, wherein the load ratio is a ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.
  • cooling device 150 such as a fan and a processor to, in response to a thermal event indicating an increase in temperature in the computing device 100 or an increase in temperature of a component associated with the computing device 100, obtain information indicating execution activities of a plurality of processes, wherein the plurality of processes includes a first set of processes and
  • FIG. 4 is a diagram of a thermal management process/application to manage the temperature by adjusting an execution priority of a process.
  • the thermal management process may cause information indicating execution activities of a plurality of processes being obtained.
  • the plurality of processes may include a first set of processes and a second set of processes, wherein the first set has a lower execution priority than the second set.
  • the information indicating the execution activities may be obtained by receiving or requesting the information from another process, such as the OS process management application and/or a process separate from or in combination with the OS and monitoring, managing, and/or scheduling the execution activities of the plurality of processes.
  • the information indicating the execution activities may be obtained by the heat management process itself by monitoring, managing, and/or scheduling the execution activities of the plurality of processes.
  • the thermal management process may obtain, calculate or estimate a load ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.
  • the heat management process may adjust an execution priority of a process in the first set to decrease or reduce the temperature.
  • the computing device 100 may include cooling device 150 such as a fan and a processor 102 to, in response to an event indicating a degree of increasing power consumption by the computing device 100 to cause an increase in temperature in the computing device 100 or an increase in temperature of a component associated with the computing device 100, obtain information indicating execution activities of a plurality of processes, wherein the plurality of processes includes a first set of processes and a second set of processes, and wherein the first set has lower execution priority than the second set, and, in response to a load ratio exceeding a threshold, adjust an execution priority of a process in the first set to decrease or reduce the power consumption, wherein the load ratio is a ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.
  • cooling device 150 such as a fan and a processor 102 to, in response to an event indicating a degree of increasing power consumption by the computing device 100 to cause an increase in temperature in the computing device 100 or an increase in temperature of a component associated with the computing device 100, obtain
  • FIG. 5 is a diagram of a thermal management process/application by adjusting an execution priority of a process.
  • the thermal management process may be executed by computing device 100 including a processor 102 and cooling device 150 such as a fan, to cause the following two processes.
  • the process in response to a thermal event indicating an increase in temperature in the computing device 100 or an increase in temperature of a component associated with the computing device 100, the process may cause information indicating execution activities of a plurality of processes being obtained.
  • the plurality of processes may include a first set of processes and a second set of processes, wherein the first set has a lower execution priority than the second set.
  • the information indicating the execution activities may be obtained by receiving or requesting the information from another process, such as the OS process management process/application such as a task scheduler and/or a task manager, and/or a process separate from the OS and monitoring, managing, and/or scheduling the execution activities of the plurality of processes.
  • the information indicating the execution activities may be obtained by the heat management process itself by monitoring, managing, and/or scheduling the execution activities of the plurality of processes.
  • the heat management process may adjust an execution priority of a process in the first set to decrease or reduce the temperature.
  • the load ratio is a ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.
  • the computing device 100 may include cooling device 150 such as a fan and a processor 102 to, in response to an event indicating a degree of increasing power consumption by the computing device 100 to cause an increase in temperature in the computing device 100 or an increase in temperature of a component associated with the computing device 100, obtain information indicating execution activities of a plurality of processes, wherein the plurality of processes includes a first set of processes and a second set of processes, and wherein the first set has lower execution priority than the second set, and, in response to a load ratio exceeding a threshold, adjust an execution priority of a process in the first set to decrease or reduce the power consumption, wherein the load ratio is a ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.
  • cooling device 150 such as a fan and a processor 102 to, in response to an event indicating a degree of increasing power consumption by the computing device 100 to cause an increase in temperature in the computing device 100 or an increase in temperature of a component associated with the computing device 100, obtain
  • FIG. 6 is a diagram of a thermal management process/application by adjusting an execution priority of a process.
  • the thermal management process/application may be executed by computing device 100 including a processor 102 and cooling device 150 such as a fan, to cause the following two processes.
  • the process in response to an event indicating a degree of increasing power consumption by the computing device 100 to cause an increase in temperature in the computing device 100 or an increase in temperature of a component associated with the computing device 100, the process may cause information indicating execution activities of a plurality of processes being obtained.
  • the plurality of processes may include a first set of processes and a second set of processes, wherein the first set has a lower execution priority than the second set.
  • the information indicating the execution activities may be obtained by receiving or requesting the information from another process, such as the OS process management application such as a task scheduler and/or a task manager, and/or a process separate from the OS and monitoring, managing, and/or scheduling the execution activities of the plurality of processes.
  • the information indicating the execution activities may be obtained by the heat management process itself by monitoring, managing, and/or scheduling the execution activities of the plurality of processes.
  • the heat management process may adjust an execution priority of a process in the first set to decrease or reduce the power consumption.
  • the load ratio is a ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.
  • the processor is may adjust the execution priority of the process prior to a control event to increase a speed of the fan to decrease the temperature after the thermal event.
  • the processor is may adjust the execution priority of the process prior to a control event to increase a speed of the fan to decrease the temperature initially after the thermal event, responsive the control event is an initial event after the thermal event.
  • the processor may adjust the execution priority of the process while controlling the speed of the fan to be maintained.
  • the first set of processes is indicated to have a lower execution priority based on process types of the plurality of processes indicated in the obtained information, such as a background process type.
  • the first set of processes is indicated to have a lower execution priority based on the execution activities indicated in the obtained information.
  • the execution activities may indicate process types of the plurality of processes or a degree of user interaction by each respective process of the plurality of processes.
  • each respective process among the plurality of processes may be tagged, categorized, or grouped into the first set or the second set based on the process types or the degree of user interaction by each respective process of the plurality of processes.
  • the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into different sets, groups, or categories.
  • the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into a first set of a relatively lower priority, a second set of a priority higher than the lower priority of the first set, for example, in a mutually exclusive, collectively exhaustive manner, or in a mutually non-exclusive, collectively exhaustive manner, or in a mutually exclusive, collectively non-exhaustive manner, or in a mutually non-exclusive, collectively non-exhaustive manner.
  • the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into a first set of a relatively lower priority, a second set of a second priority higher than the lower priority of the first set, a third set of a third priority higher than the second priority of the second set, and/or one or more higher priority set and so on, for example, in a mutually exclusive, collectively exhaustive manner, or in a mutually non-exclusive, collectively exhaustive manner, or in a mutually exclusive, collectively non-exhaustive manner, or in a mutually non-exclusive, collectively non-exhaustive manner.
  • the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into a first set being a set of background processes/applications and a second set being a set of foreground processes/applications.
  • the thermal management process may itself may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications, or may obtain from, receive from, and/or request to the OS, information indicating priorities/execution priorities of the plurality of processes/applications and/or types of the plurality of processes/applications as background vs.
  • the information indicating the execution activities of the plurality of processes/applications representing, indicating, or implying the priorities/execution priorities of the plurality of processes/applications and/or types of the plurality of processes/applications as background vs. foreground.
  • the information indicating different sets, groups, or categories of the processes may be included in the information indicating the execution activities of the plurality of processes.
  • the first set of processes may be indicated to be a set of background processes and the second set of processes may be indicated to be a set of foreground processes.
  • the first set of processes may be indicated to be a set of processes being interactive with the user and the second set of processes may be indicated to be a set of processes that are other than being interactive with the user.
  • FIG. 7 is a diagram of an example of a thermal management process.
  • a process may be entered by a change in the computing device 100, and the plurality of processes may include this entered process, whose respective execution activities may be constantly changed, changing the corresponding processing loads on the processor 102.
  • a change in the processing loads may cause a change in power consumption and may cause additional heat generation.
  • a cooling device 150 coupled to the computing device 100 such as the cooling device 150 that may detect an amount of power being supplied or a temperature, may detect, measure, estimate, determine or predict a thermal condition, such as a rate or an amount of heat generated, the temperature inside the computing device 100 and/or temperature of a component coupled to the computing device 100, such as the CPU temperature.
  • the thermal management process/application may be directed to the heat generation or temperature inside the computing device 100 and/or the heating being generated by or the temperature of the component 101 .
  • the thermal management process/application may be directed to or implemented for the heat generation associated with the external component.
  • the thermal management process/application may initiate evaluating an appropriate response for the thermal management or cooling.
  • the thermal condition may also be estimated, determined or predicted based on a change in user preference, detection of a user in proximity or touching the system, or a change of power source between battery and AC power, and/or other various conditions that can be associated with the thermal condition or thermal behaviors of the computing device 100 or the component coupled to the computing device 100.
  • influence by a set of relatively lower priority processes, among the plurality of processes may be estimated, determined or predicted.
  • an example involving the OS is disclosed, while an example may also include a case involving the thermal management process executed in combination or associated with the OS, or the thermal management process independent of the OS or software, or by an embedded controller in the computing device 100.
  • the prioritization of processes/applications among the plurality of processes/applications may be ascertained in various ways, such as the association of user input and output.
  • the thermal management process/software or the OS may determine whether the specific application has enjoyed recent service, for example, whether an Anti-virus program has recently been updated, or whether the user has opened their mail client recently, before providing greater processing resources to those processes/applications.
  • the OS or the thermal management process may also consider which of the execution activities of the plurality of processes, such as those involving user activities, and are relatively lower priority applications.
  • the thermal management process or the OS may measure, estimate, determine, or predict (e.g., based on information indicating execution activities of the plurality of processes) whether the user has interacted with a process among the plurality of processes/applications.
  • the user interaction may be measured, estimated, determined or predicted based on a signal through the input/output interface, such as a signal from the input device.
  • the user interaction may be measured, estimated, determined or predicted based on based pm whether the process has had an interactive interface output through the I/O interface 170, such as the output device 130, which may include, for example, a viewable window thru a display device , thru networking using the I/O interface 170 or thru external connection (such as USB) to another device using the I/O interface 170.
  • the I/O interface 170 such as the output device 130
  • the output device 130 may include, for example, a viewable window thru a display device , thru networking using the I/O interface 170 or thru external connection (such as USB) to another device using the I/O interface 170.
  • the thermal management process or the OS may measure, estimate, determine, or predict, e.g., based on information indicating execution activities of the plurality of processes, based on whether a process among the plurality of processes/applications has been initiated by the user, by another application, by the OS or by a signal received externally (e.g., from a remote control), and/or whether the process has been initiated as a result of a periodic timer of real-time clock.
  • the OS or the thermal management process may measure, determine, estimate or predict whether the process among the plurality of processes/applications, such as a service process, is supporting any particular thread.
  • the thermal management process or the OS may determine or estimate that network activity is related to a particular process among the plurality of processes/applications and consider the kernel components (for example, the CPU time used by drivers for the storage or network) to contribute to the whole of the system power consumption.
  • the thermal management process or the OS may also determine the whole of power contribution due to other components — for example, the power consumption by a component in the computing device 100 or a component associated with or coupled to the computing device 100, such as a storage component including the Solid State Drive or an I/O component including the wireless modem in addition to the associated processor (CPU and GPU) components.
  • a component in the computing device 100 or a component associated with or coupled to the computing device 100 such as a storage component including the Solid State Drive or an I/O component including the wireless modem in addition to the associated processor (CPU and GPU) components.
  • the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into different sets, groups, or categories.
  • the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into a first set of a relatively lower priority, a second set of a priority higher than the lower priority of the first set.
  • the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into a first set of a relatively lower priority, a second set of a second priority higher than the lower priority of the first set, a third set of a third priority higher than the second priority of the second set, and/or one or more higher priority set and so on.
  • the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into a first set being a set of background processes/applications and a second set being a set of foreground processes/applications.
  • the thermal management process may itself may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications.
  • the information indicating different sets, groups, or categories of the processes may be included in the information indicating the execution activities of the plurality of processes.
  • the thermal management process or the OS may estimate, measure and/or determine influence by a lower priority process such as a process indicated as a background process on the thermal condition or state of the computing device 100 or a component associated with the computing device 100.
  • the thermal management process or the OS may ascertain an absolute threshold for such execution activity such as a processing load by the lower priority process and a load ratio between the processing loads by the first set of a relatively lower priority, the second set of a priority higher than the lower priority of the first set, such as the processing loads by the first process being a set of background processes and the second set as a set of foreground processes.
  • an absolute threshold for such execution activity such as a processing load by the lower priority process and a load ratio between the processing loads by the first set of a relatively lower priority, the second set of a priority higher than the lower priority of the first set, such as the processing loads by the first process being a set of background processes and the second set as a set of foreground processes.
  • the thermal management process or the OS may determine if the execution activity and/or the processing load by the first set exceed a threshold based on the total available resources of the processor 102 or a threshold based a load ratio between the processing loads by or percentage of an available processor 102 capacity, (e.g., a percentage of the processing load by the first set of processes with respect to the total processing load on the processor 102, the total processing capacity of the processor 102, the total available processing capacity of the processor, the processing load by the processes other than the first set of processes, the processing load by the second set, the processing load by the third set, the processing load by the second and third sets, and so on.)
  • a threshold set may be a percentage higher than about 1 % or more, 5 % or more, 10 % or more, 15% or more, 20 % or more, 25% or more, 30 % or more, 35 % or more, 40 % or more, 50 % or more, 60 % or more, 70 % or more, 80 % or more, 85
  • the thermal management process or the OS may determine that the balance of foreground and background activities such as the balance between processing loads by the first set of processes/applications and by the second set of processes/applications is of a certain balance. For example, the thermal management process or the OS may determine that the load ratio exceeded the threshold when the processor load by the first set of processes/applications, such as the total low priority activities, total background activities, is more than 50% of the total processing capacity of the processor 102.
  • the thermal management process or the OS may look at the total of all processor loads, and, if the total nears a certain percentage, such as any percentage from 50% to 100% of the available computing resources, determine that the processing load by low priority activities, such as the processing load by the first set of processes or the set of background processes is having a disproportional impact on the overall system power consumption.
  • a certain percentage such as any percentage from 50% to 100% of the available computing resources
  • the thermal management/process or the OS may adjust or affect the execution priority, execution activity, and/or scheduling of a process among the background applications, lower priority applications, or among the first set of processes.
  • this adjustment or affecting may be executed irrespective of the state, cooling rate, or speed of the cooling device 150, such as a fan, or with respect to the state, cooling rate, or speed of the cooling device or fan possibly as a priority process prior to any change or increase in the state, cooling rate, or speed of the cooling device 150, such as a fan, or before the active state of the fan (the fan speed) is adjusted.
  • the process S202 may affect or adjust the heating in the computing device 100 or heating of a component associated with the computing device 100, by power managing the applications separately.
  • the thermal management process or the OS may deliberately separate lower priority processes/applications among the plurality of processes/applications and deprives them of computing resources.
  • the thermal management process or the OS may interrupt a process among the first set of processes, or a process of a low priority or background task and stop its execution activities, or may delay the triggering of the execution activities, or may require the process to be manually launched instead of automatically scheduled, or may assign the process to only executed by a low power CPU core, or the process to be executed at reduced voltage and/or frequency.
  • the second set of processes/applications, higher priority processes/applications, and/or foreground processes/applications/tasks may retain priority to background tasks.
  • a process that has an interaction through a user interface and where response time to the user has a priority may not be slowed down as are the first set of processes, lower priority processes/applications and/or background processes/applications/tasks, where such a selective adjustment of executions with respect to the first set of processes, lower priority processes/applications and/or background processes/applications/tasks may manage the thermal event without increasing the cooling rate or fan speed, without compromising the performance to the user as a result of the thermal event.
  • the cooling device 150 control such as a fan actuation and global system performance management process may be controlled irrespective or independently of the thermal management by the thermal management process/application or the OS.
  • cooling device 150 control such as a fan actuation and global system performance may be controlled in combination with and/or with respect to the thermal management by the thermal management process/software or the OS.
  • global system performance means the whole of CPU performance and cooling device 150 (e.g., fan) setting available to the whole of the system.
  • a global system performance management process may still seek a global slowdown of the system, which may cause the whole of the system performance to be decreased to a more efficient frequency and voltage setting. This global slowdown may avoid the perception of the ghost driven fan with increased noise level possibly interrupting the user unexpecting the computing device 100 operations.
  • the power management application or the OS may generate a notification to the user that associates fan noise with a heavy background processing load. For example, as a diagnostic even without a “push” notification to the user, recognizing periods of high CPU fan and capturing the applications that were driving the thermal state of the computer may be used for debugging a complaint of a fan noise from the user.
  • the computing device 100 may have a quiet mode setting for the fan.
  • the user may reactively switch this control to the quiet mode even if the cause for the manual change is a temporary reaction to the ghost applications hogging the machine.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)

Abstract

An example of a computing device may include a fan and a processor. The processor may, in response to a thermal event indicating an increase in a temperature in the computing device, obtain information indicating execution activities of a plurality of processes. The plurality of processes includes a first set of processes and a second set of processes, where the first set has lower execution priority than the second set. The processor may, in response to a load ratio exceeding a threshold, adjust an execution priority of a process in the first set to decrease the temperature, wherein the load ratio is a ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.

Description

TITLE
TEMPERATURE CONTROL OF COMPUTING DEVICE
BACKGROUND
[0001] A computing device may include a processor to execute a plurality of processes. These processes may demand resources such as computing time of the processor, memory, and other storage resources, which may require power, and in turn, cause generation of heat. To control the heat, a computing device may include a component to remove or transport the generated heat from the computing device. For example, a cooling component such as a fan may be used to reduce a temperature of the computing device in response to the heat generated.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] FIG. 1 illustrates an example of a computing device including components coupled to the computing device such as a processor and a cooling device;
[0003] FIG. 2 illustrates an example of an Operating System (OS) executing an OS core running in combination with the plurality of processes and communicating with a component of the computing device;
[0004] FIG. 3 illustrates an example of a process management application that manages execution activities of the plurality of processes executed in combination with the OS;
[0005] FIG. 4 is a diagram of thermal management by adjusting an execution priority of a process, according to an example;
[0006] FIG. 5 is a diagram of thermal management by adjusting an execution priority of a process, according to an example; [0007] FIG. 6 is a diagram of thermal management by adjusting an execution priority of a process, according to an example; and
[0008] FIG. 7 is a diagram of an example of the thermal management by adjusting an execution priority of a process.
DETAILED DESCRIPTION
[0009] Various examples of the disclosure will now be described in greater detail with reference to the accompanying drawings, wherein like reference characters denote like elements
[0010] According to an example, a computing device 100 may include a processor to execute machine readable instructions to run processes and perform tasks. For example, various types of the computing device 100 may include a computer, a personal computer, a laptop, a server, a handheld computer, a mobile device, an industrial computing device, a commercial computing device, a control device, a smart phone, a tablet, etc.
[0011] According to an example, FIG. 1 illustrates an example of a computing device 100 including components coupled to the computing device such as a processor and a cooling device. According to an example, the computing device 100 may include some or all of the components illustrated in FIG. 1 and may also include a component other than the components illustrated in FIG. 1.
[0012] According to an example, the computing device 100 may be coupled with or may include a basic input/output system (BIOS). As used herein, a basic input/output system (BIOS) refers to hardware or hardware and instructions to initialize, control, or operate a computing device 100 prior to the execution of an operating system (OS) of the computing device 100. Instructions included within a BIOS may be software, firmware, microcode, or other programming that defines or controls functionality or operation of a BIOS. In one example, a BIOS may be implemented using instructions, such as platform firmware of a computing device 100, executable by a processor. A BIOS may operate or execute prior to the execution of the OS of a computing device 100. A BIOS may initialize, control, or operate components such as hardware components of a computing device 100 and may load or boot the OS of computing device 100.
[0013] In some examples, a BIOS may provide or establish an interface between hardware devices or platform firmware of the computing device 100 and an OS of the computing device 100, via which the OS of the computing device 100 may control or operate hardware devices or platform firmware of the computing device 100. In some examples, a BIOS may implement the Unified Extensible Firmware Interface (UEFI) specification or another specification or standard for initializing, controlling, or operating a computing device 100.
[0014] According to an example, the computing device 100 may include any suitable processor architecture and/or any suitable number of processors according to an example. For example, referring to FIG. 1 , the computing device 100 may include a processor 102 executing various machine readable codes for a plurality of processes, to provide computing and processing operations for the computing device 100. In this disclosure, a process may refer to an application, a task, or any other executing activities, such as a set of machine readable codes or instructions, executable by the processor 102, which may include device drivers, programming tools, utility programs, machine readable codes libraries, application programming interfaces (APIs), and other various types of applications.
[0015] According to an example, the processor 102 may be arranged to provide processing or computing resources to the computing device 100. For example, the processor 102 may be responsible for executing various processes such as system applications and other applications, such as user applications, to provide computing and processing operations for the computing device 100.
[0016] The term “processor” is to be interpreted to include various types of processors. For example, various types of processors may include a processing unit, logic unit, programmable gate array, a central processing unit (CPU) using any suitable processor or logic device, such as a general purpose processor, a graphics processing unit (GPU), a digital signal processor (DSP), a math co-processor, programmable gate arrays, or microcontrollers. For example, the processor 102 may include, or be implemented as, a chip multiprocessor (CMP), dedicated processor, embedded processor, media processor, input/output (I/O) processor, co-processor, microprocessor, controller, microcontroller, application specific integrated circuit (ASIC), field programmable gate array (FPGA), programmable logic device (PLD), or other processing device in accordance with the described examples. According to an example, the operations may all be performed by a single processor or divided amongst several processors.
[0017] According to an example, referring to FIG. 1 , the computing device 100 may include, coupled to, connected to, or combined with a component 101 , which may be an internal component or an external component externally connected to the computing device 100 or in communication with the computing device 100 via a wire or wirelessly. An example of a component 101 may include the processor 102, memory 103, power supply 120, cooling device 150, data bus, Input/Output Interface 170, input device 160, output device 130 such as a display device, wiring, and other various types of a component 105 that can be internally or externally connected to the computing device 100 via a wire or wirelessly, such as a monitor and an image forming apparatus. For example, a component 101 may be added by being inserted into an internal slot or socket or a slot or socket exposed or provided externally, and/or that can be connected wireless or by a wire.
[0018] According to an example, the processor 102 may communicate or exchange signals with a component 101 associated with the computing device 100, such as the memory 103, for example, through a data bus comprising any suitable interface and/or bus architecture. For example, the data bus may comprise any suitable interface and/or bus architecture for allowing the processor 102 to access the memory 103. For example, the memory 103 may be integrated along with the processor 102 or may be separate from the processor 102 and connected through the data bus. For example, some portion or the entire memory 103 may be included on the same integrated circuit as the processor 102. For example, some portion or the entire memory 103 may be disposed on an integrated circuit or another medium (e.g., solid state drive, hard disk drive) external to the integrated circuit of processor 102. According to an example, the computing device 100 may comprise an expansion slot to support a multimedia and/or memory 103 card, for example.
[0019] According to an example, the memory 103 may be implemented using any non-transitory and/or transitory machine readable or computer-readable media capable of storing data such as volatile memory or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or re-writeable memory, and so forth. According to an example, various types of machine readable storage media may be implemented, such as random-access memory (RAM), dynamic RAM (DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), read-only memory (ROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory (e.g., NOR or NAND flash memory), content addressable memory (CAM), polymer memory (e.g., ferroelectric polymer memory), phase-change memory, ovonic memory, ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, magnetic or optical cards, or any other type of media suitable for storing information.
[0020] For example, the computing device 100 may be coupled with or may include an input/output (I/O) interface 170 coupled to the processor 102. The I/O interface 170 may comprise one or more I/O devices such as a serial connection port, an infrared port, various types of wireless capabilities to enable wire and/or wireless communication connection. According to an example, computing device 100 may be arranged to transfer and/or synchronize information with another computing device 100, a server, or a computer system.
[0021] According to an example, the computing device 100 may be coupled with or connected to, or may include an input device 160. According to an example, various types of an input device 160 may be implemented, which may include a keypad such as an alphanumeric keypad and a keyboard, a touch panel such as a touch screen or a touchpad, and/or a pointer device such as a pointer and a mouse. According to an example, the computing device 100 may include an input device 160 which may include various keys, buttons, and switches.
[0022] The computing device 100 may be coupled with or include an output device 130 such as a display device coupled to the processor 102. The display device may comprise any suitable visual interface for displaying content to a user of the computing device 100. In one example, for example, the display device may be implemented by a liquid crystal display (LCD) such as a touch- sensitive color (e.g., 16-bit color) thin-film transistor (TFT) LCD screen. In some examples, the touch-sensitive LCD may be used with a stylus and/or a handwriting recognizer program.
[0023] For example, the processor 102 may be coupled to various audio/video (A/V) devices, as the output device 130 and/or the input device 160, that support A/V capability of the computing device 100. Examples of A/V devices may include, for example, a display device, a microphone, a speaker, an audio port to connect an audio headset, an audio coder/decoder (codec), an audio player, a digital camera, a video camera, a video codec, a video player, and other types of A/V devices.
[0024] According to an example, the processor 102 may be coupled to a power supply 120 arranged to supply and manage power to the elements of the computing device 100. In various examples, the power supply 120 may be implemented by a rechargeable battery, such as a removable and rechargeable lithium-ion battery to provide direct current (DC) power, and/or an alternating current (AC) adapter to draw power from a standard AC main power supply.
[0025] According to an example, as shown in FIG. 1 , the computing device 100 may include a power supply 120 and a cooling device 150. The power supply 120 and/or the cooling device 150 may be in communication with processor 102.
[0026] The power supply 120 may be managed based on a power management process, which may obtain, process, and/or utilize information that indicates a degree of power consumption, and/or a battery power level. [0027] According to an example, the computing device 100 may include a cooling device 150 According to an example, the cooling device 150 may be implemented as a fan. A component coupled with the computing may consume power and generate heat, which may be removed to cool the component or the computing device 100 by the cooling device 150, which may generate noise that may be heard by a user of the computing device 100 and may interrupt the user.
[0028] According to an example, machine readable codes for a system generally may assist in the running of the computing device 100 with a process, e.g., a plurality of processes, which may be executed for controlling, integrating, and managing the individual hardware components coupled with or included in the computing device 100 and/or running various types of applications coded based on machine readable codes. According to an example, various types of machine readable codes may be implemented, which may include an operating system (OS), device drivers, programming tools, utility programs, machine readable codes libraries, application programming interfaces (APIs), and so forth. For example, the computing device 100 may use any suitable OS in accordance with the described examples, such as MICROSOFT® WINDOWS OS and other various types of OS.
[0029] According to an example, the processor 102 may execute a plurality of processes based on information indicating execution activities of the plurality of processes, such as process schedule information, task schedule information, and/or scheduler information. According to an example, schedule information may be obtained, organized, updated and/or managed by an application or a process executed by the processor, such as a process scheduler and process manager. According to an example, various types of process schedule applications may be implemented, such as a task scheduler or a task manager, as a part of the OS or an application executable in combination with the OS. For example, the OS may be provided for scheduling the execution activities by the processor.
[0030] For example, a computing device 100 capable of executing a plurality of processes or applications in a multi-tasking processing, such as a computing device 100 running or executing a multi-tasking Operating System (OS), may implement a scheduler activity or a process management activity by the OS kernel. The OS responds to requests by user mode processes or applications and then allocates computing resources (e.g. CPU or GPU) for each respective process, application, and/or its tasks. The OS may operate in a pre-emptive multi-tasking fashion, e.g., by providing time-slices of the CPU for each process/application or in a round-robin method whereby each process/application terminates with a nothing-to-run state releasing the computing resources to then serve needs of another process, application and/or task. For example, the OS may determine the amount of CPU time allocated for each process. In the computing device 100 coupled to a multi-core CPU, the OS may also affect an affinity that establishes not only when a process is provided computing resource, but also can assign which of the CPU cores is used for any specific operation or task. For example, in the so-called Big-Little CPU architecture, the OS may assign some operations/tasks to a Big CPU core that has relatively high performance, long pipeline and Superscalar speculative out of order execution — or to a Little CPU core that has relatively lower performance but operates more efficiently. The OS may detect, measure, estimate, determine and/or predict the CPU time used by each process/application, or calculate the energy used by each process/application via information regarding the CPU core, such as its frequency and voltage while operating the thread.
[0031] For example, FIG. 2 illustrates an example of an Operating System (OS) executing an OS core running in combination with the plurality of processes and communicating with a component of the computing device.
[0032] Referring to FIG. 2, the OS being executed or run on the computing device 100 may be executing an operating system (OS) core 111 that may include the OS component utility applications/processes 112, such as a task manager, process manager, and/or resource monitor. The OS core 111 including the OS component utility applications/processes may be controlling, managing, and/or may be running in combination with, the plurality of processes that may include a first process 113, second process 114, a third process 115, and so on, which may have or may be expected to have varying degrees of user interactions, and which may be higher priority or lower priority applications, such as a user application or foreground application and background applications. The OS core 111 may communicate with the component 101 . The OS core 111 may communicate with the plurality of processes via a communication channel. The OS core 111 including the OS component utility applications/processes 112 may be controlling and/or managing and/or may run in combination with the thermal management process 116. For example, the thermal management process 116 may be in communication with one of the OS component utility applications/processes 112 such as a task manager, process manager, and/or resource monitor, and may obtain information indicating execution activities of the plurality of processes.
[0033] According to an example, the process management process 112, such as a task manager or a task scheduler, may monitor the plurality of processes and may provide information about execution activities of the plurality of the processes executed by or running on the computing device 100, and/or the various statuses of the computer, such as processing load by a process among the plurality of processes, such as CPU usage and/or memory 103 usage. According to an example, the process management process 112 may be capable of terminating, postponing, or delaying a process among the plurality of processes, and/or may assign, indicate and/or change an execution activity of or scheduling priority of the process. The process management process 112 may obtain various types of information regarding the plurality of processes, such as their process identifier and group identifier.
[0034] FIG. 3 illustrates an example of the OS component utility process 112 being a process management process/application 112 that manages execution activities of the plurality of processes executed in combination with the OS. Referring to FIG. 3, the process management process/application 112 may manage execution activities of the plurality of processes and may obtain, generate, or collect various types of information regarding the plurality of processes, such as processes status, processing load, memory 103 load, storage load rate, network load, power load. According to an example, the process management process/application 112 may obtain and manage information regarding the execution priorities of processes among the plurality of processes.
[0035] According to an example, the thermal management process 116 may be executed based on machine readable codes, such as an OS, an application executed in combination or associated with the OS, or an application independent of the OS or software, or by an embedded controller in the system. An example of the thermal management application/process 116 based on the machine readable codes may include the Advanced Configuration and Power Interface (“ACPI”) interface.
[0036] According to an example, the thermal management process 116 may obtain or receive a measurement of power consumption amount or rate and/or the temperature in the computing device 100 and/or the temperature of the component 101 , such as the processor 102, or the temperature of the external component.
[0037] According to an example, when heat is generated by a component 101 coupled with the computing device 100 and may increase the temperature of the component or in the computing device 100, the temperature may be decreased by removing heat, which may be removed to cool the components or the computing device 100 by the cooling device 150. Such cooling may generate noise, such as noise generated from increased fan speed that may be heard by a user of the computing device 100 and may interrupt the user. For example, when the user is not aware of a process or application running in the background not interacting with the user, the user may perceive the noise being generated unexpectedly and/or unpredictably to the user as a ghost driven fan with increased noise, and may possibly perceive the condition as degraded experience, for example, by forming an impression that the computing device 100 is ghost-driven or that ghost applications are draining the system resources.
[0038] As a result, user experience may be degraded as the user may experience a "what happened" moment when the cooling process generates noise, e.g., when the fan speed suddenly goes up or increases during low customer usage. For example, when the cooling rate of the cooling device 150, such as a speed of a fan, is changed directly or indirectly based on a temperature change in a component associated with the computing device 100 and/or a temperature change in a computing device 100, the cooling rate such as the fan speed may change not considering or not matching the user’s foreground use of the computing device 100, which may create an interruption unexpected by the user.
[0039] For example, a cooling device 150 in the computing device 100 such as a personal computer, mobile device, or a server, may adapt to the power consumed by the computing device 100, e.g., because of GPU and CPU activity. For example, the power consumed by the computing device 100 is due to the processor 102 having a processing load of executing a plurality of processes.
[0040] According to an example, the processor 102 may execute the plurality of processes, for example, in a multi-task fashion. According to an example, the processor may execute the plurality of processes based on information indicating execution activities and/or execution priorities of the plurality of processes. For example, the plurality of processes may include a user mode process. According to an example, lower priority processes or lower priority applications, such as low priority processes or low priority applications, may be presented directly a user interface but may have low user interaction. For example, a lower priority process or a low priority process may include an open browser pointed to a website that is churning ad activity thru videos in the background, which may use substantial system resources or add a processing load on the processor even while the browser tab is not visible or in interaction with the user.
[0041] According to an example, the plurality of processes such as user mode applications can operate as a foreground or background process. According to an example, a background process or a background application may be a process or an application having a lower execution priority than a foreground process or a foreground application. According to an example, a foreground process or a foreground application may be a process or an application having a higher execution priority than a background process or a background application. For example, among the plurality of processes, the foreground process or the foreground application may include a process the user is providing action for, a process receiving, assuming and/or tagged to assume the user’s action, engagement and/or attention, and/or a process interactive with the user, assumed to be interactive with the user, and/or indicated to be interactive with the user, and/or an application receiving or indicated to receive a user’s input. The background process or the background application may include a process not being able to receive the user’s input or not receiving the user’s input, a process the user is not providing action for or not being able to provide an action for, a process not receiving or not being able to receive, not assuming and/or not indicated to assume the user’s attention, and/or a process not being interactive with the user or not being able to be interactive with the user, not assumed to be interactive with the user, and/or not indicated to be interactive with the user. For example, the background process may include an anti-virus application, storage management application, spyware, certain OS- related functions, printing a document, and/or accessing the network. For example, a background process may operate without a direct user interface, and therefore, without any user’s expectation of performance or quality of service. For example, in computing, a background application may include a “Daemon” application, which may spawn and operate without user control. According to an example, a background process may be a process other than a foreground process among the plurality of processes. According to an example, the user may find different types of processes running in the background that the user is not aware of, such as an anti-virus application, storage management application, and spyware, or processes that have been running in the foreground and currently running in the background, such as an application window moved to the background or covered over another application window and a browser tab not currently selected by the user or hidden in a web browser application, such as an open browser pointed to a website that is churning ad activity thru videos in the background, which uses significant system resources or add a processing load on the processor even while the browser tab is not visible or in interaction with the user. According to an example, a foreground process may be a process other than a background process among the plurality of processes. For example, In the OS, foreground and background applications may be tuned or arranged. For example, when the computing device is a computer for personal use, there may be less user control by a user at a non- administrative level over processing priorities or there may be none.
[0042] According to an example, when the processor executes a lower priority process or a lower priority application, such as a low priority process or a low priority application, such executions may not be readily perceived by the user. On the other hand, from a user perspective, system performance and cooling device 150 behavior may be judged on the visible foreground activity. For example, from a user perspective, system performance and cooling device 150 behavior may be judged based on the activities of the computing device 100 that can be perceived by the user, such as foreground activities.
[0043] A thermal condition may be altered or modified to avoid generating noise or increasing fan speed in view of the user’s perspective and/or expectation on the noise level such as noise from the cooling device 150. For example, the thermal management of computing device 100 may provide options to the user to select a relatively silent mode or silent preference of cooling, by causing some or all applications to throttle down in a non-discriminative manner, instead of increasing the fan speed. For example, the CPU speed may be reduced or executions of processes may be delayed or postponed, so as to decrease the generation of heat instead of increasing cooling rate of cooling device 150, such as increasing fan speed, to accelerate or increase the removal rate or transfer rate of heat in the system. In this case of an example, throttling down some or all applications in a non-discriminative manner, slowing the CPU processes or delaying executions of applications globally slows the entire system.
[0044] Therefore, according to an example, the cooling rate of the cooling device 150, such as the speed of the fan, may be arranged, controlled, or managed to relatively match the user’s perspective, the user’s foreground use and/or the user’s expectation on the foreground use of the computing device 100, rather than solely or mainly based on the temperature or the temperature change.
[0045] According to an example, when a change in temperature in the computing device 100 or of a component associated with the computing device 100 is detected, or when power consumption that causes heating in the computing device 100 or of a component associate with the computing device 100 is detected, measured, calculated, estimated, and/or determined, the processor may selectively throttle down the lower priority process, or the low priority process, or the background process, to reduce the temperature in the computing device 100, for example, instead of accelerating the fan speed or prior to accelerating the fan speed.
[0046] According to an example, power management or heat management, such as fan speed, may be changed, controlled, or maintained, for example, based on a control event to decrease the temperature, which may be based on a variable. For example, the variable may include temperature that is measured, predicted, estimated or determined. For example, the variable may include a thermal condition that is measured, predicted, estimated or determined. For example, the variable may include a power consumption level that is measured, predicted, estimated or determined. For example, the variable may include a processing load on the processor 102 that is being monitored, recorded, measured, predicted, estimated or determined. For example, power management or heat management, such as fan speed, may be changed, managed, or maintained based on the balance between different process groups, such as a balance between processing loads of a first set of relatively lower priority processes and a second set of higher priority processes relative to the first set. The term relative or relatively refers to relativeness to other processes or their qualities, such as lower or higher execution priority relative to other processes’ execution priorities For example, power management or heat management, such as fan speed, may be changed, controlled, or maintained based on the balance between processing loads by a first set of foreground processes and processing loads by a second set of background processes. For example, in response to an event indicating a temperature change in the computing device 100, an execution priority of a process among the plurality of processes may be adjusted to delay the execution of the process, while the cooling rate of the cooling device 150 such as the speed of the fan is being controlled to be maintained.
[0047] According to an example, the cooling device 150 control, such as a fan actuation, may be controlled irrespective or independently of the thermal management by the thermal management process. According to an example, the cooling device 150 control, such as a fan actuation, may be controlled in combination with and/or with respect to the thermal management by the thermal management process.
[0048] According to an example, a thermal event may include an event indicating change or increase in temperature, such as a temperature of a component associated with or included in the computing device and temperature in the computing device. According to an example, a thermal event may include an event that infers, implies, estimate, or predict change or increase in the temperature, such as an event indicating a processing load increase on the processor and/or an event indicating power consumption increase by the computing device.
[0049] According to an example, in response to the thermal event, the amount, level, or degree of execution activities by or associated with the lower priority processes may be measured and is compared to either a threshold or used to calculate, estimate, predict, or determine the balance between system loads, such as processing loads, by the lower priority processes and higher priority processes, such as the balance between system loads, such as processing loads, by the background processes and the foreground processes. The result of the comparison may be used to affect the execution activities, scheduling, or performance of a lower priority process among the lower priority processes, such as a background process among the background processes, instead of, or in addition to, or before modifying the fan speed.
[0050] According to an example, the thermal management process or the OS may also prioritize the available computing resources for processes among the first set of processes. According to an example, the thermal management process may be a part of the OS, or an application independent of the OS or associate with the OS, or the OS itself.
[0051] According to an example, a computing device 100 may include a cooling device 150, such as a fan, and a processor 102. According to an example, the processor 102 may, in response to a thermal event indicating an increase in temperature in the computing device, obtain process scheduler information indicating execution activities of a plurality of processes, respectively, and, prior to a control event to control actuation of the fan to decrease the temperature in response to the thermal event, and in response to a processing load on the processor 102 by a group of processes among the plurality of processes exceeding an available processing load of the processor 102 by a threshold, the processor 102 may adjust a priority of an execution activity of a process in the first group to cause a decrease in the temperature.
[0052] According to an example, a computing device 100 may include cooling device 150, such as a fan, and a processor 102. According to an example, the processor 102 may, in response to a thermal event indicating an increase in temperature in the computing device, obtain process scheduler information indicating execution activities of a plurality of processes, respectively, and, prior to a control event to control actuation of the fan to decrease the temperature in response to the thermal event, in response to a first processing load on the processor 102 by a first group of processes among the plurality of processes exceeding a threshold load based on a second processing load on the processor by a second group of processes among the plurality of processes, the processor may adjust a priority of an execution activity of a process in the first group to cause a decrease in the temperature.
[0053] According to an example, the computing device 100 may include cooling device 150 such as a fan and a processor to, in response to a thermal event indicating an increase in temperature in the computing device 100 or an increase in temperature of a component associated with the computing device 100, obtain information indicating execution activities of a plurality of processes, wherein the plurality of processes includes a first set of processes and a second set of processes, and wherein the first set has lower execution priority than the second set, and, in response to a load ratio exceeding a threshold, adjust an execution priority of a process in the first set to decrease or reduce the temperature, wherein the load ratio is a ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.
[0054] According to an example, FIG. 4 is a diagram of a thermal management process/application to manage the temperature by adjusting an execution priority of a process.
[0055] According to an example, referring to FIG. 4, referring to the process S100, the thermal management process may cause information indicating execution activities of a plurality of processes being obtained. The plurality of processes may include a first set of processes and a second set of processes, wherein the first set has a lower execution priority than the second set. The information indicating the execution activities may be obtained by receiving or requesting the information from another process, such as the OS process management application and/or a process separate from or in combination with the OS and monitoring, managing, and/or scheduling the execution activities of the plurality of processes. For example, the information indicating the execution activities may be obtained by the heat management process itself by monitoring, managing, and/or scheduling the execution activities of the plurality of processes. Referring to the process S200, the thermal management process may obtain, calculate or estimate a load ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set. In response to the load ratio exceeding a threshold, the heat management process may adjust an execution priority of a process in the first set to decrease or reduce the temperature.
[0056] According to an example, the computing device 100 may include cooling device 150 such as a fan and a processor 102 to, in response to an event indicating a degree of increasing power consumption by the computing device 100 to cause an increase in temperature in the computing device 100 or an increase in temperature of a component associated with the computing device 100, obtain information indicating execution activities of a plurality of processes, wherein the plurality of processes includes a first set of processes and a second set of processes, and wherein the first set has lower execution priority than the second set, and, in response to a load ratio exceeding a threshold, adjust an execution priority of a process in the first set to decrease or reduce the power consumption, wherein the load ratio is a ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.
[0057] According to an example, FIG. 5 is a diagram of a thermal management process/application by adjusting an execution priority of a process. The thermal management process may be executed by computing device 100 including a processor 102 and cooling device 150 such as a fan, to cause the following two processes.
[0058] First, referring to the process S 110 in FIG. 5, in response to a thermal event indicating an increase in temperature in the computing device 100 or an increase in temperature of a component associated with the computing device 100, the process may cause information indicating execution activities of a plurality of processes being obtained. The plurality of processes may include a first set of processes and a second set of processes, wherein the first set has a lower execution priority than the second set. The information indicating the execution activities may be obtained by receiving or requesting the information from another process, such as the OS process management process/application such as a task scheduler and/or a task manager, and/or a process separate from the OS and monitoring, managing, and/or scheduling the execution activities of the plurality of processes. The information indicating the execution activities may be obtained by the heat management process itself by monitoring, managing, and/or scheduling the execution activities of the plurality of processes. [0059] Second, referring to the process S210 in FIG. 5, in response to a load ratio exceeding a threshold, the heat management process may adjust an execution priority of a process in the first set to decrease or reduce the temperature. In this case, the load ratio is a ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.
[0060] According to an example, the computing device 100 may include cooling device 150 such as a fan and a processor 102 to, in response to an event indicating a degree of increasing power consumption by the computing device 100 to cause an increase in temperature in the computing device 100 or an increase in temperature of a component associated with the computing device 100, obtain information indicating execution activities of a plurality of processes, wherein the plurality of processes includes a first set of processes and a second set of processes, and wherein the first set has lower execution priority than the second set, and, in response to a load ratio exceeding a threshold, adjust an execution priority of a process in the first set to decrease or reduce the power consumption, wherein the load ratio is a ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.
[0061] According to an example, FIG. 6 is a diagram of a thermal management process/application by adjusting an execution priority of a process. The thermal management process/application may be executed by computing device 100 including a processor 102 and cooling device 150 such as a fan, to cause the following two processes.
[0062] First, referring to the process S 120 in FIG. 6, in response to an event indicating a degree of increasing power consumption by the computing device 100 to cause an increase in temperature in the computing device 100 or an increase in temperature of a component associated with the computing device 100, the process may cause information indicating execution activities of a plurality of processes being obtained. The plurality of processes may include a first set of processes and a second set of processes, wherein the first set has a lower execution priority than the second set. The information indicating the execution activities may be obtained by receiving or requesting the information from another process, such as the OS process management application such as a task scheduler and/or a task manager, and/or a process separate from the OS and monitoring, managing, and/or scheduling the execution activities of the plurality of processes. The information indicating the execution activities may be obtained by the heat management process itself by monitoring, managing, and/or scheduling the execution activities of the plurality of processes.
[0063] Second, referring to the process S220 in FIG. 6, in response to a load ratio exceeding a threshold, the heat management process may adjust an execution priority of a process in the first set to decrease or reduce the power consumption. In this case, the load ratio is a ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.
[0064] According to an example, the processor is may adjust the execution priority of the process prior to a control event to increase a speed of the fan to decrease the temperature after the thermal event. For example, the processor is may adjust the execution priority of the process prior to a control event to increase a speed of the fan to decrease the temperature initially after the thermal event, responsive the control event is an initial event after the thermal event.
[0065] According to an example, the processor may adjust the execution priority of the process while controlling the speed of the fan to be maintained.
[0066] According to an example, the first set of processes is indicated to have a lower execution priority based on process types of the plurality of processes indicated in the obtained information, such as a background process type.
[0067] According to an example, the first set of processes is indicated to have a lower execution priority based on the execution activities indicated in the obtained information. [0068] According to an example, the execution activities may indicate process types of the plurality of processes or a degree of user interaction by each respective process of the plurality of processes. According to an example, each respective process among the plurality of processes may be tagged, categorized, or grouped into the first set or the second set based on the process types or the degree of user interaction by each respective process of the plurality of processes.
[0069] According to an example, the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into different sets, groups, or categories. For example, the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into a first set of a relatively lower priority, a second set of a priority higher than the lower priority of the first set, for example, in a mutually exclusive, collectively exhaustive manner, or in a mutually non-exclusive, collectively exhaustive manner, or in a mutually exclusive, collectively non-exhaustive manner, or in a mutually non-exclusive, collectively non-exhaustive manner. For example, the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into a first set of a relatively lower priority, a second set of a second priority higher than the lower priority of the first set, a third set of a third priority higher than the second priority of the second set, and/or one or more higher priority set and so on, for example, in a mutually exclusive, collectively exhaustive manner, or in a mutually non-exclusive, collectively exhaustive manner, or in a mutually exclusive, collectively non-exhaustive manner, or in a mutually non-exclusive, collectively non-exhaustive manner. For example, the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into a first set being a set of background processes/applications and a second set being a set of foreground processes/applications. According to an example, in case of the thermal management process being a process associated with the OS but unintegrated as a part of the OS, the thermal management process may itself may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications, or may obtain from, receive from, and/or request to the OS, information indicating priorities/execution priorities of the plurality of processes/applications and/or types of the plurality of processes/applications as background vs. foreground, such as the information indicating the execution activities of the plurality of processes/applications representing, indicating, or implying the priorities/execution priorities of the plurality of processes/applications and/or types of the plurality of processes/applications as background vs. foreground. According to an example, the information indicating different sets, groups, or categories of the processes may be included in the information indicating the execution activities of the plurality of processes.
[0070] According to an example, the first set of processes may be indicated to be a set of background processes and the second set of processes may be indicated to be a set of foreground processes. According to an example, the first set of processes may be indicated to be a set of processes being interactive with the user and the second set of processes may be indicated to be a set of processes that are other than being interactive with the user.
[0071] For example, FIG. 7 is a diagram of an example of a thermal management process. According to an example, a process may be entered by a change in the computing device 100, and the plurality of processes may include this entered process, whose respective execution activities may be constantly changed, changing the corresponding processing loads on the processor 102. A change in the processing loads may cause a change in power consumption and may cause additional heat generation.
[0072] Referring to the process S101 in FIG. 7, a cooling device 150 coupled to the computing device 100, such as the cooling device 150 that may detect an amount of power being supplied or a temperature, may detect, measure, estimate, determine or predict a thermal condition, such as a rate or an amount of heat generated, the temperature inside the computing device 100 and/or temperature of a component coupled to the computing device 100, such as the CPU temperature. According to an example, the thermal management process/application may be directed to the heat generation or temperature inside the computing device 100 and/or the heating being generated by or the temperature of the component 101 . According to an example, the thermal management process/application may be directed to or implemented for the heat generation associated with the external component.
[0073] According to an example, based on the thermal condition or the temperature in the process S101 , Referring to the process S102 in FIG. 7, the thermal management process/application may initiate evaluating an appropriate response for the thermal management or cooling. According to an example, the thermal condition may also be estimated, determined or predicted based on a change in user preference, detection of a user in proximity or touching the system, or a change of power source between battery and AC power, and/or other various conditions that can be associated with the thermal condition or thermal behaviors of the computing device 100 or the component coupled to the computing device 100.
[0074] According to an example, referring to the process S201 in FIG. 7, influence by a set of relatively lower priority processes, among the plurality of processes, may be estimated, determined or predicted. Below, an example involving the OS is disclosed, while an example may also include a case involving the thermal management process executed in combination or associated with the OS, or the thermal management process independent of the OS or software, or by an embedded controller in the computing device 100.
[0075] According to the example, the prioritization of processes/applications among the plurality of processes/applications may be ascertained in various ways, such as the association of user input and output. According to the example, the thermal management process/software or the OS may determine whether the specific application has enjoyed recent service, for example, whether an Anti-virus program has recently been updated, or whether the user has opened their mail client recently, before providing greater processing resources to those processes/applications.
[0076] According to an example, the OS or the thermal management process may also consider which of the execution activities of the plurality of processes, such as those involving user activities, and are relatively lower priority applications. For example, the thermal management process or the OS may measure, estimate, determine, or predict (e.g., based on information indicating execution activities of the plurality of processes) whether the user has interacted with a process among the plurality of processes/applications. For example, the user interaction may be measured, estimated, determined or predicted based on a signal through the input/output interface, such as a signal from the input device. For example, the user interaction may be measured, estimated, determined or predicted based on based pm whether the process has had an interactive interface output through the I/O interface 170, such as the output device 130, which may include, for example, a viewable window thru a display device , thru networking using the I/O interface 170 or thru external connection (such as USB) to another device using the I/O interface 170.
[0077] For example, the thermal management process or the OS may measure, estimate, determine, or predict, e.g., based on information indicating execution activities of the plurality of processes, based on whether a process among the plurality of processes/applications has been initiated by the user, by another application, by the OS or by a signal received externally (e.g., from a remote control), and/or whether the process has been initiated as a result of a periodic timer of real-time clock.
[0078] According to an example, the OS or the thermal management process may measure, determine, estimate or predict whether the process among the plurality of processes/applications, such as a service process, is supporting any particular thread. For example, the thermal management process or the OS may determine or estimate that network activity is related to a particular process among the plurality of processes/applications and consider the kernel components (for example, the CPU time used by drivers for the storage or network) to contribute to the whole of the system power consumption. The thermal management process or the OS may also determine the whole of power contribution due to other components — for example, the power consumption by a component in the computing device 100 or a component associated with or coupled to the computing device 100, such as a storage component including the Solid State Drive or an I/O component including the wireless modem in addition to the associated processor (CPU and GPU) components.
[0079] According to an example, the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into different sets, groups, or categories. For example, the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into a first set of a relatively lower priority, a second set of a priority higher than the lower priority of the first set. For example, the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into a first set of a relatively lower priority, a second set of a second priority higher than the lower priority of the first set, a third set of a third priority higher than the second priority of the second set, and/or one or more higher priority set and so on. For example, the thermal management process or the OS may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications into a first set being a set of background processes/applications and a second set being a set of foreground processes/applications. According to an example, in case of the thermal management process being a process associated with the OS but unintegrated as a part of the OS, the thermal management process may itself may allocate, categorize, assign, and/or determine each respective process among the plurality of processes/applications. According to an example, the information indicating different sets, groups, or categories of the processes may be included in the information indicating the execution activities of the plurality of processes. [0080] According to an example, the thermal management process or the OS may estimate, measure and/or determine influence by a lower priority process such as a process indicated as a background process on the thermal condition or state of the computing device 100 or a component associated with the computing device 100. For example, the thermal management process or the OS may ascertain an absolute threshold for such execution activity such as a processing load by the lower priority process and a load ratio between the processing loads by the first set of a relatively lower priority, the second set of a priority higher than the lower priority of the first set, such as the processing loads by the first process being a set of background processes and the second set as a set of foreground processes. For example, the thermal management process or the OS may determine if the execution activity and/or the processing load by the first set exceed a threshold based on the total available resources of the processor 102 or a threshold based a load ratio between the processing loads by or percentage of an available processor 102 capacity, (e.g., a percentage of the processing load by the first set of processes with respect to the total processing load on the processor 102, the total processing capacity of the processor 102, the total available processing capacity of the processor, the processing load by the processes other than the first set of processes, the processing load by the second set, the processing load by the third set, the processing load by the second and third sets, and so on.) For example, a threshold set may be a percentage higher than about 1 % or more, 5 % or more, 10 % or more, 15% or more, 20 % or more, 25% or more, 30 % or more, 35 % or more, 40 % or more, 50 % or more, 60 % or more, 70 % or more, 80 % or more, 85 % or more, 90 % or more, 95 % or more, or any percentage therebetween. For example, the thermal management process or the OS may determine that the balance of foreground and background activities such as the balance between processing loads by the first set of processes/applications and by the second set of processes/applications is of a certain balance. For example, the thermal management process or the OS may determine that the load ratio exceeded the threshold when the processor load by the first set of processes/applications, such as the total low priority activities, total background activities, is more than 50% of the total processing capacity of the processor 102. For example, the thermal management process or the OS may look at the total of all processor loads, and, if the total nears a certain percentage, such as any percentage from 50% to 100% of the available computing resources, determine that the processing load by low priority activities, such as the processing load by the first set of processes or the set of background processes is having a disproportional impact on the overall system power consumption.
[0081] According to an example, referring to the process S202 in FIG. 7, when the thermal management/process or the OS determines that the threshold is being exceeded based on the process S201 , the thermal management/process or the OS may adjust or affect the execution priority, execution activity, and/or scheduling of a process among the background applications, lower priority applications, or among the first set of processes. According to an example, this adjustment or affecting may be executed irrespective of the state, cooling rate, or speed of the cooling device 150, such as a fan, or with respect to the state, cooling rate, or speed of the cooling device or fan possibly as a priority process prior to any change or increase in the state, cooling rate, or speed of the cooling device 150, such as a fan, or before the active state of the fan (the fan speed) is adjusted.
[0082] According to an example, the process S202 may affect or adjust the heating in the computing device 100 or heating of a component associated with the computing device 100, by power managing the applications separately. For example, the thermal management process or the OS may deliberately separate lower priority processes/applications among the plurality of processes/applications and deprives them of computing resources. For example, the thermal management process or the OS may interrupt a process among the first set of processes, or a process of a low priority or background task and stop its execution activities, or may delay the triggering of the execution activities, or may require the process to be manually launched instead of automatically scheduled, or may assign the process to only executed by a low power CPU core, or the process to be executed at reduced voltage and/or frequency. [0083] According to an example, the second set of processes/applications, higher priority processes/applications, and/or foreground processes/applications/tasks may retain priority to background tasks. For example, a process that has an interaction through a user interface and where response time to the user has a priority may not be slowed down as are the first set of processes, lower priority processes/applications and/or background processes/applications/tasks, where such a selective adjustment of executions with respect to the first set of processes, lower priority processes/applications and/or background processes/applications/tasks may manage the thermal event without increasing the cooling rate or fan speed, without compromising the performance to the user as a result of the thermal event.
[0084] According to an example, the cooling device 150 control, such as a fan actuation and global system performance management process may be controlled irrespective or independently of the thermal management by the thermal management process/application or the OS. According to an example, cooling device 150 control, such as a fan actuation and global system performance may be controlled in combination with and/or with respect to the thermal management by the thermal management process/software or the OS. Here, global system performance means the whole of CPU performance and cooling device 150 (e.g., fan) setting available to the whole of the system.
[0085] For example, if little foreground activity exists, or the user is not interacting with the system, a global system performance management process may still seek a global slowdown of the system, which may cause the whole of the system performance to be decreased to a more efficient frequency and voltage setting. This global slowdown may avoid the perception of the ghost driven fan with increased noise level possibly interrupting the user unexpecting the computing device 100 operations.
[0086] According to an example, the power management application or the OS may generate a notification to the user that associates fan noise with a heavy background processing load. For example, as a diagnostic even without a “push” notification to the user, recognizing periods of high CPU fan and capturing the applications that were driving the thermal state of the computer may be used for debugging a complaint of a fan noise from the user.
[0087] For example, the computing device 100 may have a quiet mode setting for the fan. The user may reactively switch this control to the quiet mode even if the cause for the manual change is a temporary reaction to the ghost applications hogging the machine.
[0088] The foregoing examples are merely examples and are not to be construed as limiting the disclosure. The disclosure can be readily applied to other types of apparatuses. Also, the description of the examples of the disclosure is intended to be illustrative, and not to limit the scope of the claims. Examples explained in the disclosure may be modified and implemented in various different forms.
[0089] While the disclosure has been described with reference to the accompanying drawings, it is to be understood that the scope of the disclosure is defined by the claims described hereinafter and should not be construed as being limited to the above-described examples and/or drawings. It is to be clearly understood that variations, changes, and modifications that are obvious to those skilled in the art are also within the scope of the disclosure as defined in the claims.
[0090] In this disclosure, when it is stated in the disclosure that one element is "connected to", "coupled to", or “coupled with” another element, the expression encompasses not only an example of a direct connection or direct coupling, but also a connection with another element interposed therebetween. Further, when it is stated herein that one element "includes" another element, unless otherwise stated explicitly, it means that yet another element may be further included rather than being excluded. As used herein, such as in the disclosure and in the claims, the term "and/or" includes any and all combinations of one or more of the associated listed items. As used in the application, including in the claims, the word “or” is used in an inclusive manner. For example, “A or B” means any of the following: “A” alone, “B” alone, or both “A” and “B”.

Claims

WHAT IS CLAIMED IS:
1. A computing device, comprising: a fan; and a processor to: in response to a thermal event indicating an increase in a temperature in the computing device, obtain information indicating execution activities of a plurality of processes, wherein the plurality of processes includes a first set of processes and a second set of processes, wherein the first set has lower execution priority than the second set; and in response to a load ratio exceeding a threshold, adjust an execution priority of a process in the first set to decrease the temperature, wherein the load ratio is a ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.
2. The computing device according to claim 1 , wherein the processor is to adjust the execution priority of the process prior to a control event to increase a speed of the fan to decrease the temperature after the thermal event.
3. The computing device according to claim 2, wherein the control event is to increase the speed of the fan initially after the thermal event.
4. The computing device according to claim 1 , wherein the processor is to adjust the execution priority of the process while a speed of the fan is maintained.
5. The computing device according to claim 1 , wherein the first set of processes is indicated to have the lower execution priority based on the execution activities indicated in the obtained information.
6. The computing device according to claim 5, wherein the execution activities indicate: process types of the plurality of processes, or a degree of user interaction by each respective process of the plurality of processes.
7. The computing device according to claim 1 , wherein the first set of processes is indicated to be a set of background processes and the second set of processes is indicated to be a set of foreground processes, based on the obtained execution activities.
8. A computing device, comprising: a fan; and a processor to: in response to an event indicating a degree of increasing power consumption by the computing device to cause an increase in a temperature in the computing device, obtain information indicating execution activities of a plurality of processes, wherein the plurality of processes includes a first set of processes and a second set of processes, wherein the first set has lower execution priority than the second set; and in response to a load ratio exceeding a threshold, adjust an execution priority of a process in the first set to decrease the power consumption, wherein the load ratio is a ratio between a first processing load on the processor by the first set and a second processing load on the processor by the second set.
9. The computing device according to claim 8, wherein the processor is to adjust the execution priority of the process prior to a control event to increase a speed of the fan to decrease the temperature after the event.
10. The computing device according to claim 9, wherein the control event is to increase the speed of the fan initially after the event.
11. The computing device according to claim 8, wherein the processor is to adjust the execution priority of the process while controlling a speed of the fan to be maintained.
12. The computing device according to claim 8, wherein the first set of processes is indicated to have lower execution priority based on the execution activities indicated in the obtained information; and wherein the execution activities indicate: process types of the plurality of processes, or a degree of user interaction by each respective process of the plurality of processes.
13. A non-transitory machine readable storage comprising instructions that, when executed, cause a processor of a computing device to: in response to an event indicating a temperature change in the computing device, obtain a load ratio between a first processing load on the processor by a first set of processes and a second processing load on the processor by a second set of processes, while the processor is executing a plurality of processes including the first set and the second set, wherein the first set has a lower execution priority than the second set; and in response to the load ratio exceeding a threshold, adjust an execution priority of a process in the first set to decrease the first processing load on the processor by the first set.
14. The non-transitory machine readable storage according to claim 13, wherein the instructions when executed further cause the processor to adjust the execution priority of the process while controlling a speed of the fan to be maintained.
15. The non-transitory machine readable storage according to claim 13, wherein the first set of processes is indicated to be a set of background processes and the second set of processes is indicated to be a set of foreground processes.
PCT/US2020/047180 2020-08-20 2020-08-20 Temperature control of computing device WO2022039744A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2020/047180 WO2022039744A1 (en) 2020-08-20 2020-08-20 Temperature control of computing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/047180 WO2022039744A1 (en) 2020-08-20 2020-08-20 Temperature control of computing device

Publications (1)

Publication Number Publication Date
WO2022039744A1 true WO2022039744A1 (en) 2022-02-24

Family

ID=80323027

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2020/047180 WO2022039744A1 (en) 2020-08-20 2020-08-20 Temperature control of computing device

Country Status (1)

Country Link
WO (1) WO2022039744A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024046088A1 (en) * 2022-08-29 2024-03-07 华为技术有限公司 Task scheduling method and related device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6845456B1 (en) * 2001-05-01 2005-01-18 Advanced Micro Devices, Inc. CPU utilization measurement techniques for use in power management
US20130117594A1 (en) * 1994-06-20 2013-05-09 C. Douglass Thomas Configurable thermal and power management for portable computers
US8768530B2 (en) * 2010-06-04 2014-07-01 Apple Inc. Thermal zone monitoring in an electronic device
US9971609B2 (en) * 2014-06-05 2018-05-15 American Megatrends, Inc. Thermal watchdog process in host computer management and monitoring

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130117594A1 (en) * 1994-06-20 2013-05-09 C. Douglass Thomas Configurable thermal and power management for portable computers
US6845456B1 (en) * 2001-05-01 2005-01-18 Advanced Micro Devices, Inc. CPU utilization measurement techniques for use in power management
US8768530B2 (en) * 2010-06-04 2014-07-01 Apple Inc. Thermal zone monitoring in an electronic device
US9971609B2 (en) * 2014-06-05 2018-05-15 American Megatrends, Inc. Thermal watchdog process in host computer management and monitoring

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024046088A1 (en) * 2022-08-29 2024-03-07 华为技术有限公司 Task scheduling method and related device

Similar Documents

Publication Publication Date Title
US10649935B2 (en) Deferred inter-processor interrupts
KR101029414B1 (en) Method and apparatus for providing for detecting processor state transitions
EP2885707B1 (en) Latency sensitive software interrupt and thread scheduling
US10509677B2 (en) Granular quality of service for computing resources
JP5472886B2 (en) System and method for controlling central processing unit power in a virtualized system
US9904575B2 (en) System and method for selective timer rate limiting
US9830187B1 (en) Scheduler and CPU performance controller cooperation
US9411649B2 (en) Resource allocation method
EP3535641B1 (en) Thread importance based processor core partitioning
CN109906437B (en) Processor core stall and frequency selection based on thread importance
US20140223437A1 (en) Method and electronic device for thread scheduling
JP5764150B2 (en) Method and computer for transition from power-on state to power-saving state
JP5345990B2 (en) Method and computer for processing a specific process in a short time
US9542230B2 (en) System and method for selective timer coalescing
US20120254822A1 (en) Processing optimization load adjustment
EP2972826B1 (en) Multi-core binary translation task processing
WO2022039744A1 (en) Temperature control of computing device
US10121001B1 (en) System and method for monolithic scheduling in a portable computing device using a hypervisor
CN110647401A (en) Frequency modulation method, frequency modulation device, storage medium and electronic equipment
MARZ et al. Reducing power consumption and latency in mobile devices by using a gui scheduler
Gough et al. Operating systems

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20950460

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20950460

Country of ref document: EP

Kind code of ref document: A1