Generating fan control signals for a computing device

CN117529617BActive Publication Date: 2026-10-16MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202280044005.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-06-21
Filing Date
2022-05-19
Publication Date
2026-10-16
Estimated Expiration
2042-05-19

AI Technical Summary

Technical Problem

由于风扇噪声特性,诸如风扇噪声的总音量和风扇噪声音量随时间的变化,以及其他风扇噪声特性,可能会发生用户被风扇噪声分散注意力的情况

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117529617B_ABST
    Figure CN117529617B_ABST
Patent Text Reader

Abstract

A computing device is provided that includes one or more processing devices, one or more temperature sensors, a fan, and a fan tachometer. The one or more processing devices can be configured to execute an application program. When executing the application program, the one or more processing devices can be further configured to collect performance data, including temperature data received from the one or more temperature sensors and fan speed data received from the fan tachometer. The one or more processing devices can also be configured to generate a fan control signal at least in part by applying a machine learning model to the performance data. The one or more processing devices can be further configured to control the fan in accordance with the fan control signal.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] Computing devices typically include a fan configured to circulate air through the device to dissipate heat generated at the components during operation. The fan can be driven by an electric motor at a dynamically determined speed at the computing device. Generally, as the fan speed increases, the noise generated by the fan also increases.

[0002] During the use of computing devices that include fans, the noise generated by the fans can distract users and potentially degrade the user experience. The sound of the fans can also interfere with a user's ability to distinguish the audio output generated by the computing device. Due to the characteristics of fan noise, such as the total volume of the fan noise and the variation of the fan noise volume over time, as well as other fan noise characteristics, users may become distracted by fan noise. The risk of user distraction or annoyance due to fan noise generally increases with increasing fan noise and can also be high when the fan speed increases or decreases rapidly, causing sudden increases or decreases in fan noise. However, if heat is allowed to accumulate in the components of the computing device without a fan circulating air through it, these components may overheat. Therefore, there is a technical challenge in controlling the fan to properly cool the device while suppressing the generation of types of noise known to distract or annoy users. Summary of the Invention

[0003] According to one aspect of this disclosure, a computing device is provided, including one or more processing devices, one or more temperature sensors, a fan, and a fan tachometer. The one or more processing devices can be configured to execute an application. When executing the application, the one or more processing devices can be further configured to collect performance data, including temperature data received from the one or more temperature sensors and fan speed data received from the fan tachometer. The one or more processing devices can also be configured to generate fan control signals, at least in part, by applying a machine learning model to the performance data. The one or more processing devices can be further configured to control the fan based on the fan control signals.

[0004] This summary is provided to introduce, in a simplified form, a selection of concepts also described in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to the implementation of solutions to any or all the shortcomings mentioned in any part of this disclosure. Attached Figure Description

[0005] Figure 1 An example computing device in the form of a video game console according to one embodiment of the present disclosure is shown.

[0006] Figure 2 It schematically shows the following based on Figure 1 The example process demonstrates how machine learning models, thermal control proportional-integral-derivative (PID) algorithms, and fan control PID algorithms can be used to generate fan control commands for fans included in computing devices.

[0007] Figure 3 It schematically shows the following based on Figure 2 Examples of additional details about computing devices when performance data is received at one or more processing devices.

[0008] Figure 4 It schematically shows the following based on Figure 3 Examples of additional details about the computing device when the thermal control PID algorithm is updated.

[0009] Figure 5 It schematically shows the following based on Figure 3 Examples of additional details about the computing device when the fan control PID algorithm is executed.

[0010] Figure 6 It schematically shows the following based on Figure 1 The example process demonstrates how machine learning models and fan control PID algorithms can be used to generate fan control commands for fans included in computing devices.

[0011] Figure 7 It schematically shows the following based on Figure 6 Examples of additional details about the computing device when the fan control PID algorithm is updated.

[0012] Figure 8 It schematically shows the following based on Figure 1 The example process allows fan control instructions for fans included in computing devices to be generated in a machine learning model.

[0013] Figure 9A It schematically shows the following based on Figure 1 An example of a computing device when it is configured to receive a template machine learning model from a server computing device.

[0014] Figure 9B It schematically shows the following based on Figure 9A An example of a server computing device when generating a template machine learning model.

[0015] Figure 10A It schematically shows the following based on Figure 1 An example of a computing device configured to use a machine learning model to detect vent blockages.

[0016] Figure 10B It shows that according to Figure 10A The example view includes a graphical user interface (GUI) showing a notification of vent blockage.

[0017] Figure 11A It shows that according to Figure 1 The flowchart illustrates an example method used by a computing device to control a fan included in the computing device.

[0018] Figure 11B It shows that according to Figure 11A The example may include additional steps of the method that can be performed in the example, wherein one or more processing devices are further configured to perform a thermal control model.

[0019] Figure 11C It shows that according to Figure 11A Examples of additional steps that can be performed when the method includes executing a fan control PID algorithm.

[0020] Figure 11D It shows that according to Figure 11A An example of the additional steps that can be performed when a vent in the casing of a computing device is determined to be blocked.

[0021] Figure 12 A schematic diagram of an example computing system is shown, in which instantiation can be performed. Figure 1 Computing devices. Detailed Implementation

[0022] To address the aforementioned challenges, a computing device 10 is provided, such as... Figure 1 As shown in the example. Figure 1 In one example, computing device 10 is a video game console. However, in other examples, computing device 10 may take the form of some other type of computing device. Computing device 10 may include one or more processing devices 12, which may include, for example, a central processing unit (CPU) 12A, a graphics processing unit (GPU) 12B, and / or a system-on-a-chip (SoC) 12C. Other types of processing devices may be additionally or alternatively included in computing device 10. Computing device 10 may also include memory 14 electrically coupled to one or more processing devices 12. Memory 14 may include, for example, volatile memory and / or non-volatile memory. In an example where computing device 10 includes SoC 12C, SoC 12C may include, for example, components configured to perform the functions of CPU 12A, GPU 12B, and memory 14, respectively.

[0023] The computing device 10 may also include one or more temperature sensors 16. The one or more temperature sensors 16 may include, for example, one or more thermistors, one or more thermocouples, and / or one or more other types of temperature sensors. The one or more temperature sensors 16 may be located near other components of the computing device 10, and are configured to collect temperature data from these components. For example, a corresponding temperature sensor 16 may be located near each of the one or more processing devices 12. Additionally or alternatively, the temperature sensors 16 in the one or more temperature sensors 16 may be located near the memory 14. The one or more temperature sensors 16 may be configured to transmit temperature data to the one or more processing devices 12.

[0024] The computing device 10 may also include a fan 18 configured to circulate air through the computing device 10. For example... Figure 1 As shown in the example, fan 18 can be controlled by a servo motor controller (SMC) 24, which can be configured to receive instructions from one or more processing devices 12. The computing device 10 may also include a fan tachometer 20, which is configured to measure the rotational speed of fan 18. The fan tachometer 20 can be configured to transmit fan speed data to one or more processing devices 12.

[0025] The computing device 10 may also include a power supply 22 configured to provide power to other components of the computing device 10. The power supply 22 may be configured to power one or more processing devices 12, memory 14, one or more temperature sensors 16, a fan 18, a fan tachometer 20, an SMC 24, and / or one or more other components of the computing device 10. In some examples, the temperature sensors 16 in the one or more temperature sensors 16 may be configured to collect temperature data at the power supply 22.

[0026] The computing device 10 may also include a housing 26, within which a power supply 22, one or more processing devices 12, memory 14, one or more temperature sensors 16, a fan 18, a fan tachometer 20, and an SMC 24 may be provided. The housing 26 may have one or more vents 28 through which air can move across the housing 26. The fan 18 may be positioned near the vents 28 such that air can move across the vents 28 during operation of the fan 18.

[0027] The computing device 10 can be configured to communicate with one or more output devices. For example... Figure 1 As shown in the example, one or more output devices may include a display 30, on which a graphical user interface (GUI) 32 may be displayed. Furthermore, the computing device 10 may be configured to communicate with one or more input devices. Figure 1 In one example, one or more input devices include a game controller 34. In other examples, other types of input and / or output devices may be communicatively coupled to the computing device 10.

[0028] Computing device 10 can also be configured to communicate with server computing device 100. For example, server computing device 80 may be located in a data center and may communicate with computing device 10 via a network. One or more processing devices 12 of computing device 10 may be configured to offload one or more computing tasks to server computing device 100, as discussed in further detail below.

[0029] Figure 2 An example process is schematically depicted through which a fan control signal 90 can be generated at computing device 10 when application 40 is executed at one or more processing devices 12. For example, application 40 could be a video game. Alternatively, application 40 could be some other type of application. Application 40 may include one or more computing processes configured to execute at one or more processing devices 12, and in some examples, may also include one or more computing processes configured to be offloaded to server computing device 100.

[0030] While application 40 is running, one or more processing devices 12 may also be configured to collect performance data 50 for the current session of application 40. The performance data 50 may be collected as time-series data, including one or more quantities in the performance data 50 sampled at one or more corresponding sampling rates. Figure 2 As shown in the example, performance data 50 may include temperature data 52 received from one or more temperature sensors 16. Performance data 50 may also include fan speed data 54 received from fan tachometer 20. In addition, performance data 50 may include other application-specific system data 55 related to the execution of application 40 and / or the performance of one or more processing devices 12.

[0031] Figure 3The computing device 10 is illustrated schematically in more detail when performance data 50 is collected and processed at the SoC 12C. Performance data 50 may also include power consumption data 56 of one or more processing devices 12. In examples where performance data 50 includes power consumption data 56 of multiple processing devices 12, performance data 50 may individually or collectively indicate the power consumption data of the processing devices 12. In some examples, performance data 50 may also include one or more corresponding utilization levels 57 and / or one or more corresponding performance counters 58 of one or more processing devices 12. Utilization level 57 of processing device 12 may indicate the proportion of the total processing bandwidth of processing device 12 that is utilized. One or more performance counters 58 of processing device 12 may each indicate a corresponding number of instances of a particular processing hardware event (e.g., cache miss or branch prediction error).

[0032] In some examples, one or more processing devices 12 may be configured to determine an operating mode 42 for executing application 40. Operating mode 42 may be represented using one or more event markers, which may be generated at application 40 when entering or exiting a particular operating mode 42. In the example where application 40 is a video game, operating mode 42 may be, for example, the graphics settings of the video game, conditions for loading a specific area or object in the game world, conditions for executing the physics engine, single-player or multiplayer mode, conditions for receiving specific user input or combinations of user input, or some other mode or scenario that may occur when running the video game on one or more processing devices 12. In the example where one or more processing devices 12 are configured to determine operating mode 42, performance data 50 may also include one or more operating mode indications 59 that appear for one or more operating modes 42 when executing application 40.

[0033] like Figure 2 As shown in the example, one or more processing devices 12 can also be configured to generate a fan control signal 90 and control the fan 18 according to the fan control signal 90. The fan control signal 90 can be the duty cycle of the fan 18, which can be, for example, a pulse width modulation (PWM) signal. In some examples, the fan control signal 90 can be transmitted to the fan 18 via an SMC 24. In such an example, the SMC 24 can be configured to convert the digital fan control signal 90 into an analog signal, using the analog signal to control the motor of the fan 18.

[0034] One or more processing devices 12 can be configured to generate fan control signals 90, at least in part, by applying a machine learning model 74 to performance data 50. For example... Figure 2As illustrated in the example, the machine learning model 74 can be a reinforcement learning model. In the example where the machine learning model 74 is a reinforcement learning model, one or more processing devices 12 can be configured to implement an interpreter 70 for the machine learning model 74. At the interpreter 70, one or more processing devices 12 can be configured to receive performance data 50 as state data, and can also be configured to compute the value of a loss function 72 based on the performance data 50. The machine learning model 74 can be configured to receive the performance data 50 and the value of the loss function 72 as input.

[0035] exist Figure 2 In the examples, the machine learning model 74 can be trained at runtime while application 40 is executed on one or more processing devices 12. In some examples, as discussed in further detail below, at least a portion of the training of the machine learning model 74 may alternatively be performed at server computing device 100. At least a portion of the training at server computing device 100 may be performed before application 40 is executed at computing device 10. Additionally or alternatively, one or more processing devices may be configured to use the machine learning model 74 to perform inference during the execution of application 40 without performing additional training.

[0036] like Figure 3 As shown in the example, the loss function 72 may include a fan speed term 72A, which can be calculated as a function of the fan speed included in the fan speed data 54. For example, the fan speed on which the calculation of the fan speed term 72A is based may be the fan speed measured at the fan tachometer 20 during the current time step. The fan speed term 72A may be proportional to the fan speed, or proportional to some function of the fan speed (such as the square of the fan speed). The fan speed term 72A may be configured to penalize a reinforcement learning model for high fan speeds.

[0037] The loss function 72 may also include a temperature overshoot term 72B, which is configured to be added to the value of the loss function 72 when the temperature data 52 indicates that the temperature is higher than a predetermined temperature threshold. Therefore, when one or more components of the computing device 10 overheat, as measured by one or more temperature sensors 16, the temperature overshoot term 72B can penalize the reinforcement learning model. For example, the temperature overshoot term 72B can be represented as the coefficient of a step function multiplied by the temperature. In some examples, the loss function 72 may include multiple temperature overshoot terms 72B with corresponding multiple predetermined temperature thresholds.

[0038] In some examples, the loss function 72 may further include a fan acceleration term 72C. The fan acceleration term 72C can be computed as a function of the time derivative of the fan speed. For example, the fan acceleration term 72C may be proportional to the absolute value of the time derivative of the fan speed, or proportional to the square of the time derivative of the fan speed. The fan acceleration term 72C can be configured to penalize the reinforcement learning model for rapid changes in fan speed. In some examples, the loss function 72 may penalize increases in fan speed to a greater extent than a decrease in fan speed with the same magnitude of time derivative.

[0039] In addition to the machine learning model 74, one or more processing devices 12 may also be configured to execute a thermal control model when calculating the fan drive signal 90. The thermal control model may be configured to receive temperature data 52 and output a fan speed setpoint 80. In the example where one or more processing devices 12 are configured to execute the thermal control model, the one or more processing devices 12 may also be configured to apply a thermal control model update 76 to the thermal control model as the output of the machine learning model 74, as discussed in further detail below. Therefore, one or more processing devices 12 may be configured to generate an updated thermal control model. One or more processing devices 12 may also be configured to generate the fan control signal 90 at least in part by executing the updated thermal control model.

[0040] like Figure 2 and 3 As shown in the example, the thermal control model can be a thermal control proportional-integral-derivative (PID) algorithm 62. The thermal control PID algorithm 62 can have a temperature setpoint 64, which can be set, for example, in a temperature control program 60 executed by one or more processing devices 12. In some examples, the temperature setpoint 64 can also be used as additional input to a machine learning model 74.

[0041] When one or more processing devices 12 execute the thermal control PID algorithm 62, the one or more processing devices 12 can be configured to calculate the temperature error 65 between the temperature setpoint 64 and the temperature included in the temperature data 52 received from one or more temperature sensors 16. The thermal control PID algorithm 62 may include a proportional term 66A proportional to the temperature error 65, an integral term 66B proportional to the integral of the temperature error over time, and a derivative term 66C proportional to the derivative of the temperature error 65 over time. The parameters of the thermal control PID algorithm 62 may be expressed as a plurality of coefficients 67 corresponding to these terms. The proportional term 66A, integral term 66B, and derivative term 66C may have proportional coefficients 67A, integral coefficients 67B, and derivative coefficients 67C, which are multiplied by the temperature error 65, the integral of the temperature error, and the derivative of the temperature error, respectively, when calculating the fan speed setpoint 80.

[0042] At machine learning model 74, one or more processing devices 12 can be configured to apply thermal control model update 76 to the thermal control model. Figure 4 Additional details of the computing device 10 are illustrated schematically when the thermal control model update 76 is applied to the thermal control PID algorithm 62 to generate an updated thermal control PID algorithm 162. In some examples, generating the updated thermal control PID algorithm 162 may include modifying one or more coefficients of the thermal control PID algorithm 62. In such an example, at the machine learning model 74, one or more processing devices 12 may be configured to generate updated proportional coefficients 167A, updated integral coefficients 167B, and / or updated derivative coefficients 167C for the updated thermal control PID algorithm 162.

[0043] In some examples, the thermal control PID algorithm 62 may have a temperature setpoint offset 68, which can be added to the temperature setpoint 64 to dynamically adjust the temperature setpoint 64 when the application 40 is executed. The temperature setpoint offset 68 can be calculated in the machine learning model 74. Therefore, one or more processing devices 12 can be configured to apply a thermal control model update 76 to the thermal control PID algorithm 62, at least in part, by applying the temperature setpoint offset 68 to the temperature setpoint 64 of the thermal control PID algorithm 62. When calculating the temperature error 65, the temperature setpoint offset 68 can be added to the temperature setpoint 64. One or more processing devices 12 can be configured to calculate the temperature setpoint offset 68, in addition to or as a replacement for the one or more updated coefficients, when generating an updated thermal control PID algorithm 162.

[0044] Back Figure 2 One or more processing devices 12 may be further configured to execute a fan control PID algorithm 82 in addition to the thermal control PID algorithm 62 when generating the fan control signal 90. The fan control PID algorithm 82 may be configured to receive the fan speed setpoint 80 output by the thermal control PID algorithm 62 and the fan speed data 54 output by the fan tachometer 20 as inputs. The fan control PID algorithm 82 may be further configured to output the fan control signal 90.

[0045] Figure 5Additional details of the computing device 10 are schematically illustrated when the fan control PID algorithm 82 is executed. When one or more processing devices 12 execute the fan control PID algorithm 82, the one or more processing devices 12 can be configured to calculate the fan speed error 81 between the fan speed setpoint 80 and the fan speed indicated by the fan speed data 54. The fan control PID algorithm may have a proportional term 86A proportional to the fan speed error 81, an integral term 86B proportional to the integral of the fan speed error 81 over time, and a differential term 86C proportional to the derivative of the fan speed error 81 over time. The parameters of the fan control PID algorithm 82 may be represented as a plurality of coefficients 87. When calculating the fan control signal 90, the proportional term 86A, the integral term 86B, and the differential term 86C may be multiplied by the proportional coefficient 87A, the integral coefficient 87B, and the differential coefficient 87C, respectively.

[0046] Figure 6 Another example process is shown, through which one or more processing devices 12 can be configured to generate fan control signals 90. Figure 6 In the example, instead of executing Figure 2 The thermal control PID algorithm 62 allows one or more processing devices 12 to be configured to calculate the fan speed setpoint 80 directly at the machine learning model 274. Similar to... Figure 2 The machine learning model 74 can be a reinforcement learning model and can be configured to receive performance data 50, temperature setpoint 64, and the value of loss function 72 as input. Loss function 72 may include fan speed term 72A, temperature overshoot term 72B, and fan acceleration term 72C.

[0047] and Figure 2 In contrast to machine learning model 74, Figure 6 The machine learning model 274 can be configured to apply the fan control model update 276 to the fan control model to generate an updated fan control model, such as... Figure 7 As shown in the example. Figure 6 and 7In the example, the fan control model is a fan control PID algorithm 82. The fan control model update 276 can be generated at least in part based on the performance data 50 and the value of the loss function 72 as the output of the machine learning model 274. In some examples, the temperature setpoint 64 can also be used as input at the machine learning model 274. The fan control model update 276 can include an updated proportional coefficient 287A configured to be included in the proportional term 86A of the updated fan control PID algorithm 282, an updated integral coefficient 287B configured to be included in the integral term 86B of the updated fan control PID algorithm 282, and / or an updated derivative coefficient 287C configured to be included in the derivative term 86C of the updated fan control PID algorithm 282. Additionally or alternatively, one or more processing devices 12 can be configured to generate a fan speed setpoint offset 280 at the machine learning model 274, which is configured to be added to the fan speed setpoint 80 when calculating the fan speed error 81. Therefore, one or more processing devices 12 can be configured to modify the fan control PID algorithm 82 according to the specifications of the machine learning model 274.

[0048] Figure 8 Another example process is shown, through which one or more processing devices 12 can be configured to generate fan control signals 90, at least in part, by executing machine learning model 374. Figure 8 In the example, machine learning model 374 is an end-to-end model configured to generate fan control signal 90 directly from performance data 50 and the values ​​of loss function 72. In some examples, temperature setpoint 64 can also be used as input to machine learning model 374.

[0049] Figure 9A An example computing device 10 is shown, in which one or more processing devices 12 are configured to receive a template machine learning model 174 from a server computing device 100. The template machine learning model 174 can be trained at the server computing device 100 using training data collected during the execution of application 40 at multiple computing devices. Therefore, the behavior of the template machine learning model 174 can be generalized across multiple computing devices from which its training data is received, and can also be specific to application 40.

[0050] One or more processing devices 12 can also be configured to customize a template machine learning model 174 for computing device 10, thereby generating a machine learning model 74. One or more processing devices 12 can perform additional training on the template machine learning model 174 using performance data 50 and a loss function 72. Therefore, patterns in the performance data 50 specific to computing device 10 (e.g., characteristics attributable to the physical environment in which computing device 10 exists) can be represented in the machine learning model 74 after the additional training has been performed.

[0051] In an example where one or more processing devices 12 are further configured to perform additional training on the template machine learning model 174, the one or more processing devices 12 may be further configured to transmit performance data 50 to the server computing device 100. The performance data 50 can be used to perform additional training at the server computing device 100 to update the template machine learning model 174.

[0052] In some examples, such as Figure 9A As shown, the memory 14 of the computing device 10 can be configured to store multiple machine learning models 74, including a machine learning model 74. The multiple machine learning models 74 can be stored in a client machine learning model library 75. The multiple machine learning models 74 can be associated with multiple applications 40, each including an application 40. Therefore, the memory 14 can store different machine learning models 74 for different applications 40 with different hardware utilization and power consumption patterns. For example, a machine learning model 74 associated with a highly computationally intensive video game can be configured to output a high fan speed setpoint 80 when the video game is launched. In contrast, a machine learning model 74 associated with a less computationally intensive video game can be configured to output a lower fan speed setpoint 80 when the less computationally intensive video game is launched.

[0053] Figure 9BThe server computing device 100 is shown in more detail when generating the template machine learning model 174. The server computing device 100 may be configured to store a server-side machine learning model library 175, which includes multiple template machine learning models 174 for multiple applications 40. When one or more computing devices 10 execute one of the multiple applications 40, the server computing device 100 may be configured to receive corresponding performance data 50 from each of the multiple computing devices 10 executing the application 40 via a network. The collection of performance data 50 received from each of the multiple computing devices 10 may be used as a training dataset, which the server computing device 100 may utilize to train the template machine learning model 174. The server computing device 174 may also be configured to output the template machine learning model 174 to the multiple computing devices 10 after training it. For example, a new version of the template machine learning model 174 may be trained at the server computing device 100 and delivered to each computing device 10 after a software update is performed on the application 40 at the multiple computing devices 10. Thus, the template machine learning model 174 may be updated to reflect performance changes in the application 40 resulting from the update. Using this approach, the template machine learning model 174 can be updated not only based on the performance data 50 of a single computing device 10, but also based on the performance data 50 of multiple computing devices executing the same application.

[0054] Figure 10A An example computing device 10 is shown, wherein one or more processing devices 12 are also configured to detect, at least partially, vent blockage at the computing device 10 at a machine learning model 74. Vent blockage is the condition where vents 28 in the housing 26 are blocked. For example, vents 28 may be blocked by dust or objects near vents 28. Figure 10A As depicted in the example, machine learning model 74 can be configured to output vent blockage detection 92 when machine learning model 74 determines that a vent blockage has occurred. When machine learning model 74 determines that the temperature indicated by temperature data 52 is abnormally high for a given fan speed indicated by fan speed data 54, one or more processing devices 12 can, for example, determine that a vent blockage has occurred.

[0055] In response to the detection of a vent blockage, one or more processing devices 12 may be further configured to output a vent blockage notification 94 for display at the GUI 32. The vent blockage notification 94 may be generated at a graphics rendering module 96, which is executed at one or more processing devices 12 and configured to receive a vent blockage detection 92 from a machine learning model 74. Figure 10BThis shows a sample view of GUI 32 when the vent blockage notification 94 is displayed.

[0056] Figure 11A A flowchart of an example method 400 for use by a computing device to control a fan included in the computing device is shown. Figure 11A Method 400 can be found Figure 1 The method 400 may be executed at one or more processing devices, which may include a CPU, GPU, SoC, and / or one or more other types of processing devices.

[0057] In step 402, method 400 may include executing an application. For example, the application may be a video game. Alternatively, some other type of application may be executed.

[0058] In step 404, method 400 may further include collecting performance data while the application is being executed. The performance data may include temperature data received from one or more temperature sensors included in the computing device. The one or more temperature sensors may be configured to measure the corresponding temperature of one or more components of the computing device (such as one or more processing devices) while the application is being executed. The performance data may also include fan speed data received from a fan tachometer. The fan tachometer may be configured to measure the rotational speed of a fan included in the computing device. In addition to the temperature data and fan speed data, the performance data may also include power consumption data for one or more processing devices. Additionally or alternatively, the performance data may also include one or more corresponding utilization levels and / or one or more corresponding performance counters for one or more processing devices.

[0059] In some examples, performance data may also include one or more indications of operating modes in which the application is executed. Operating modes may be defined, at least in part, by the application's settings or by one or more computational processes or events indicated to occur during application execution. In the example where the application is a video game, operating modes may be, for example, the video game's graphics settings, the loading of specific areas or objects in the game world, the execution of the physics engine, single-player or multiplayer modes, the receipt of specific user input or combinations of user input, or some other mode or scenario that may occur while running the video game.

[0060] In step 406, method 400 may further include generating a fan control signal, at least in part, by applying a machine learning model to performance data. For example, the machine learning model may be a reinforcement learning model. In some examples, the machine learning model may be further configured to receive a temperature setpoint output by a temperature control program as additional input. In some examples, the fan control signal may be generated as the output of the machine learning model. In other examples, the fan control signal may be generated at one or more additional modules configured to receive the output from the machine learning model, as discussed in further detail below.

[0061] In an example where the machine learning model is a reinforcement learning model, the machine learning model may have a loss function that includes a fan speed term and a temperature overshoot term. In some examples, the loss function may further include a fan acceleration term. The fan speed term can be calculated as a function of the fan speed included in the fan speed data and can increase with increasing fan speed. When the temperature data indicates a temperature above a predetermined temperature threshold, a temperature overshoot term can be added to the loss function. Therefore, the reinforcement learning model may be penalized when the temperature reaches the predetermined temperature threshold. The fan acceleration term can be calculated as a function of the time derivative of the fan speed and can increase with increasing time derivative of the fan speed. Therefore, the reinforcement learning model may be penalized for rapid changes in fan speed that could distract the user.

[0062] In step 408, method 400 may further include controlling the fan according to a fan control signal. The fan control signal can be transmitted from one or more processing devices to an SMC configured to control the fan speed. In some examples, the fan control signal may be the fan's duty cycle. In other examples, the fan control signal may be a digital signal that is further processed to obtain the fan duty cycle.

[0063] Figure 11B Additional steps of method 400, which can be performed in examples, are shown, in which one or more processing devices are further configured to execute a thermal control model configured to receive output from a machine learning model. In step 410, method 400 may further include applying a thermal control model update to the thermal control model to generate an updated thermal control model. The thermal control model update may be generated, at least in part, based on performance data in the machine learning model. Figure 11BIn the example, the thermal control model is a thermal control PID algorithm with a temperature setpoint. The thermal control model can be configured to receive temperature data and output a fan speed setpoint. In the thermal control PID algorithm, the temperature error between the temperature setpoint and the temperature indicated by the temperature data can be calculated. The fan speed setpoint can then be generated as the sum of a proportional term proportional to the temperature error, an integral term proportional to the integral of the temperature error over time, and a differential term proportional to the derivative of the temperature error over time. The proportional, integral, and differential terms can each have their own coefficients, which can be updated via thermal control model updates. Additionally or alternatively, thermal control model updates can include a temperature setpoint offset, which is configured to be added to the temperature setpoint when the temperature error is calculated.

[0064] In step 412, method 400 may further include generating a fan control signal at least in part by executing an updated thermal control model. In some examples, the updated thermal control model may be configured to output a fan speed setpoint. In such an example, in step 414, step 412 may further include executing a fan control PID algorithm. The fan control PID algorithm may be configured to receive the fan speed setpoint output by the thermal control PID algorithm and fan speed data output by a fan tachometer as input. The fan control PID algorithm may be configured to output a fan control signal. In the fan control PID algorithm, a fan speed error between the fan speed setpoint and the fan speed indicated by the fan speed data may be calculated. The fan control signal may then be generated as a sum of a proportional term proportional to the fan speed error, an integral term proportional to the integral of the fan speed error over time, and a differential term proportional to the derivative of the fan speed error over time. The proportional, integral, and differential terms may each have their own coefficients.

[0065] Figure 11C Additional steps of method 400 that can be performed when method 400 includes executing a fan control PID algorithm are shown. Figure 11C The steps can be performed in an example where a thermal control model is also executed, or in an example where a machine learning model is configured to directly output the fan speed setpoint. In step 416, method 400 may further include applying an update to the fan control model to generate an updated fan control model. The fan control model may be generated in the machine learning model, at least in part, based on performance data. The fan control model may be a PID algorithm with a fan speed setpoint. In step 418, method 400 may further include generating a fan control signal, at least in part, by executing the updated fan control model.

[0066] Figure 11DAdditional steps of method 400, which may be performed in some examples, are shown. In step 420, method 400 may further include detecting, at least partially, a vent blockage at a machine learning model, in which a vent in the housing of the computing device is blocked. The machine learning model may, for example, detect an abnormally high temperature indicated by temperature data given received values ​​of fan speed and power utilization of one or more processing devices. In step 422, in response to detecting a vent blockage, method 400 may further include outputting a vent blockage notification for display on a GUI. The GUI may be displayed on a monitor communicatively coupled to one or more processing devices as an output device. Thus, the user can be notified that the vent of the computing device may be blocked.

[0067] Using the devices and methods discussed above, machine learning models can be leveraged when setting the fan speed of the fans included in a computing device. The fan speed and acceleration can be set so that the fans are less likely to distract the user while also preventing the computing device components from overheating. The machine learning model can be application-specific and can reflect hardware utilization trends that frequently occur when the application is running. Furthermore, the machine learning model can be received as a template machine learning model from a server computing device and can be customized for individual computing devices through additional training. This customization can take into account hardware differences between computing devices and the characteristics of the physical environment in which the computing device typically operates. Therefore, using the systems and methods discussed above, the fan speed of a computing device can be set in a way that is inconspicuous to the user and allows for adequate cooling of the device components.

[0068] In some embodiments, the methods and processes described herein may be associated with a computing system including one or more computing devices. Specifically, such methods and processes may be implemented as computer applications or services, application programming interfaces (APIs), libraries, and / or other computer program products.

[0069] Figure 12 A non-limiting embodiment of a computing system 500 capable of performing one or more of the methods and processes described above is schematically illustrated. The computing system 500 is shown in a simplified form. The computing system 500 may include the methods and processes described above. Figure 1 The computing device 10 is explained in the text. Components of the computing system 500 may be included in one or more personal computers, server computers, tablet computers, home entertainment computers, network computing devices, game consoles, mobile computing devices, mobile communication devices (e.g., smartphones) and / or other computing devices, as well as wearable computing devices such as smartwatches and head-mounted augmented reality devices.

[0070] The computing system 500 includes a logic processor 502, volatile memory 504, and non-volatile storage device 506. The computing system 500 may optionally include a display subsystem 508, an input subsystem 510, a communication subsystem 512, and / or... Figure 12 Other components not shown.

[0071] The logic processor 502 includes one or more physical devices configured to execute instructions. For example, the logic processor may be configured to execute instructions that are part of one or more applications, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform tasks, implement data types, transform the state of one or more components, achieve technical effects, or otherwise obtain desired results.

[0072] A logic processor may include one or more physical processors (hardware) configured to execute software instructions. Additionally or alternatively, a logic processor may include one or more hardware logic circuits or firmware devices configured to execute hardware-implemented logic or firmware instructions. Each processor of logic processor 502 may be single-core or multi-core, and the instructions executed thereon may be configured for serial, parallel, and / or distributed processing. The individual components of the logic processor may optionally be distributed across two or more separate devices, which may be located remotely and / or configured for collaborative processing. Aspects of the logic processor may be virtualized and executed by remotely accessible networked computing devices configured for cloud computing. It will be understood that in such a scenario, these virtualized aspects run on different physical logic processors on various different machines.

[0073] The non-volatile storage device 506 includes one or more physical devices configured to retain instructions executable by a logic processor to implement the methods and processes described herein. When such methods and processes are implemented, the state of the non-volatile storage device 506 can be transformed—for example, to retain different data.

[0074] Non-volatile storage device 506 may include physical devices that are removable and / or built-in. Non-volatile storage device 506 may include optical memory (e.g., CD, DVD, HD-DVD, Blu-ray disc, etc.), semiconductor memory (e.g., ROM, EPROM, EEPROM, flash memory, etc.), and / or magnetic memory (e.g., hard disk drive, floppy disk drive, magnetic tape drive, MRAM, etc.) or other high-capacity storage device technologies. Non-volatile storage device 506 may include non-volatile, dynamic, static, read / write, read-only, sequential access, location-addressable, file-addressable, and / or content-addressable devices. It will be understood that non-volatile storage device 506 is configured to retain instructions even when power to non-volatile storage device 506 is cut off.

[0075] Volatile memory 504 may include a physical device containing random access memory. Volatile memory 504 is typically used by logic processor 502 to temporarily store information during the processing of software instructions. It will be understood that when power to volatile memory 504 is cut off, volatile memory 504 typically does not continue storing instructions.

[0076] Various aspects of the logic processor 502, volatile memory 504, and non-volatile storage device 506 can be integrated together into one or more hardware logic components. Such hardware logic components may include, for example, field-programmable gate arrays (FPGAs), application-specific integrated circuits (PASICs / ASICs), application-specific standard products (PSSPs / ASSPs), systems-on-a-chip (SoCs), and complex programmable logic devices (CPLDs).

[0077] The terms "module," "program," and "engine" can be used to describe aspects of a computing system 500 typically implemented in software by a processor to perform specific functions using portions of volatile memory, functions involving transform processing specifically configured to perform those functions. Thus, a module, program, or engine can be instantiated via a logic processor 502 executing instructions held in non-volatile memory 506 and using portions of volatile memory 504. It will be understood that different modules, programs, and / or engines can be instantiated from the same applications, services, code blocks, objects, libraries, routines, APIs, functions, etc. Similarly, the same modules, programs, and / or engines can be instantiated from different applications, services, code blocks, objects, routines, APIs, functions, etc. The terms "module," "program," and "engine" are intended to encompass single or grouped executable files, data files, libraries, drivers, scripts, database records, etc.

[0078] When a display subsystem 508 is included, it can be used to present a visual representation of data held by the non-volatile storage device 506. This visual representation may take the form of a graphical user interface (GUI). Since the methods and processes described herein alter the data held by the non-volatile storage device and thus change the state of the non-volatile storage device, the state of the display subsystem 508 can also be changed to visually represent changes in the underlying data. The display subsystem 508 may include one or more display devices utilizing substantially any type of technology. Such display devices may be combined with the logic processor 502, the volatile memory 504, and / or the non-volatile storage device 506 in a shared housing, or such display devices may be peripheral display devices.

[0079] When the input subsystem 510 is included, it may include one or more user input devices such as a keyboard, mouse, touchscreen, or game controller, or interface with such user input devices. In some embodiments, the input subsystem may include or interface with a selected Natural User Input (NUI) component. Such components may be integrated or peripheral, and the transduction and / or processing of input actions may be handled on-board or off-board. Example NUI components may include a microphone for speech and / or voice recognition; an infrared, color, stereo display, and / or depth camera for machine vision and / or gesture recognition; a head tracker, eye tracker, accelerometer, and / or gyroscope for motion detection and / or intent recognition; an electric field sensing component for assessing brain activity; and / or any other suitable sensor.

[0080] When a communication subsystem 512 is included, the communication subsystem 512 may be configured to communicatively couple the various computing devices described herein to each other and to other devices. The communication subsystem 512 may include wired and / or wireless communication devices compatible with one or more different communication protocols. As a non-limiting example, the communication subsystem may be configured to communicate via a wireless telephone network or a wired or wireless local area network or wide area network (such as HDMI over a Wi-Fi connection). In some embodiments, the communication subsystem may allow the computing system 500 to send messages to and / or receive messages from other devices via a network such as the Internet.

[0081] The following paragraphs discuss several aspects of this disclosure. According to one aspect of this disclosure, a computing device is provided, including one or more processing devices, one or more temperature sensors, a fan, and a fan tachometer. The one or more processing devices can be configured to execute an application. When executing the application, the one or more processing devices can be further configured to collect performance data, including temperature data received from the one or more temperature sensors and fan speed data received from the fan tachometer. The one or more processing devices can also be configured to generate fan control signals, at least in part, by applying a machine learning model to the performance data. The one or more processing devices can be further configured to control the fan based on the fan control signals.

[0082] Based on this, the machine learning model can be a reinforcement learning model. The machine learning model can have a loss function that includes a fan speed term calculated as a function of the fan speed included in the fan speed data. The loss function can also include a temperature overshoot term added to the loss function when the temperature data indicates a temperature above a predetermined temperature threshold.

[0083] Based on this, the loss function can further include a fan acceleration term calculated as a function of the time derivative of the fan speed.

[0084] Accordingly, one or more processing devices can be configured to apply thermal control model updates, at least in part based on performance data, to a machine learning model to generate an updated thermal control model. The one or more processing devices can be further configured to generate fan control signals, at least in part by executing the updated thermal control model.

[0085] Based on this, the thermal control model can be a proportional-integral-derivative (PID) algorithm with a temperature setpoint. The thermal control model can be configured to receive temperature data and output the fan speed setpoint.

[0086] According to this aspect, at the machine learning model, one or more processing devices can be configured to apply thermal control model updates to the thermal control model at least partially by modifying one or more coefficients of the thermal control PID algorithm. According to this aspect, at the machine learning model, one or more processing devices can be configured to apply thermal control model updates to the thermal control model at least partially by applying a temperature setpoint offset to the temperature setpoint of the thermal control PID algorithm.

[0087] Based on this aspect, one or more processing devices can be further configured to execute a fan control PID algorithm. The fan control PID algorithm can be configured to receive a fan speed setpoint output by a thermal control PID algorithm and fan speed data output by a fan tachometer as input. The fan control PID algorithm can be configured to output a fan control signal.

[0088] Accordingly, one or more processing devices can be configured to apply fan control model updates, at least in part based on performance data, to a machine learning model to generate an updated fan control model. The fan control model can be a proportional-integral-derivative (PID) algorithm with a fan speed setpoint. The one or more processing devices can be further configured to generate fan control signals, at least in part by executing the updated fan control model.

[0089] In this respect, performance data may also include one or more operating mode indications of the operating modes in which the application is performed.

[0090] In this respect, performance data may also include one or more corresponding utilization levels of one or more processing devices and / or one or more corresponding performance counters.

[0091] Based on this, performance data can further include power consumption data for one or more processing devices.

[0092] Accordingly, one or more processing devices may also be configured to detect at least partially, at a machine learning model, a vent blockage in which a vent in the housing of the computing device is blocked. In response to detecting a vent blockage, one or more processing devices may be further configured to output a vent blockage notification for display on a graphical user interface (GUI).

[0093] Accordingly, the computing device may further include a memory configured to store multiple machine learning models including the machine learning model. The multiple machine learning models may be associated with multiple applications including the application.

[0094] According to another aspect of this disclosure, a method for a computing device is provided. The method may include executing an application. When executing the application, the method may further include collecting performance data, including temperature data received from one or more temperature sensors and fan speed data received from a fan tachometer. The method may further include generating a fan control signal, at least in part, by applying a machine learning model to the performance data. The method may further include controlling a fan based on the fan control signal.

[0095] Based on this, the machine learning model can be a reinforcement learning model. The machine learning model can have a loss function that includes a fan speed term calculated as a function of the fan speed included in the fan speed data. The loss function can also include a temperature overshoot term added to the loss function when the temperature data indicates a temperature above a predetermined temperature threshold.

[0096] Based on this aspect, the method may further include, at the machine learning model, applying an update to the thermal control model, at least partially based on performance data, to generate an updated thermal control model. The thermal control model may be a proportional-integral-derivative (PID) algorithm with a temperature setpoint. The thermal control model may be configured to receive temperature data and output a fan speed setpoint. The method may also include generating a fan control signal, at least partially by executing the updated thermal control model.

[0097] Based on this aspect, the method may further include executing a fan control PID algorithm. The fan control PID algorithm can be configured to receive a fan speed setpoint output by a thermal control PID algorithm and fan speed data output by a fan tachometer as inputs. The fan control PID algorithm can be configured to output a fan control signal.

[0098] Accordingly, at the machine learning model, the method may further include applying fan control model updates, at least partially based on performance data, to the fan control model to generate an updated fan control model. The fan control model may be a proportional-integral-derivative (PID) algorithm with a fan speed setpoint. The method may also include generating fan control signals, at least partially by executing the updated fan control model.

[0099] According to another aspect of this disclosure, a computing device is provided, including one or more processing devices, one or more temperature sensors, a fan, and a fan tachometer. The one or more processing devices may be configured to receive a reinforcement learning model from a server computing device. The one or more processing devices may also be configured to execute an application. When executing the application, the one or more processing devices may be further configured to collect performance data, including temperature data received from the one or more temperature sensors and fan speed data received from the fan tachometer. The one or more processing devices may also be configured to generate a fan control signal, at least in part, by applying the reinforcement learning model to the performance data. The one or more processing devices may be further configured to control the fan based on the fan control signal. The one or more processing devices may also be configured to perform additional training on the reinforcement learning model, at least in part, based on the performance data and a loss function of the reinforcement learning model.

[0100] As specified in the truth table below, the "and / or" used here is defined as inclusive "∨":

[0101] real real real real Fake real Fake real real Fake Fake Fake

[0102] It should be understood that the configurations and / or methods described herein are exemplary in nature, and these specific embodiments or examples should not be considered limiting, as many variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. Thus, the various actions explained and / or described may be performed in the explained and / or described order, in a different order, in parallel, or omitted. Similarly, the order of the processes described above may be changed.

[0103] The subject matter of this disclosure includes all novel and non-obvious combinations and sub-combinations of the various processes, systems and configurations disclosed herein, as well as other features, functions, actions and / or attributes, and any and all equivalents thereof.

Claims

1. A computing device, comprising: One or more processing devices; One or more temperature sensors; fan; as well as Fan tachometer; The one or more processing devices are configured to: Execute the application; When the application is executed, performance data is collected, including: Temperature data received from the one or more temperature sensors; and Fan speed data received from the fan tachometer; Fan control signals are generated, at least in part, by applying a machine learning model to the performance data; and Control the fan according to the fan control signal; The machine learning model is a reinforcement learning model; and The machine learning model has a loss function, including: The fan speed term is calculated as a function of the fan speed included in the fan speed data; and When the temperature data indicates a temperature higher than a predetermined temperature threshold, a temperature overshoot term should be added to the loss function.

2. The computing device according to claim 1, characterized in that, The loss function further includes a fan acceleration term calculated as a function of the time derivative of the fan speed.

3. The computing device according to claim 1, characterized in that, The one or more processing devices are configured to: At the machine learning model, based at least in part on the performance data, the thermal control model update is applied to the thermal control model to generate an updated thermal control model; and The fan control signal is generated at least in part by executing the updated thermal control model.

4. The computing device according to claim 3, characterized in that, in The thermal control model is a proportional-integral-differential algorithm with a temperature setpoint; and The thermal control model is configured to receive the temperature data and output the fan speed setpoint.

5. The computing device according to claim 4, characterized in that, In the machine learning model, the one or more processing devices are configured to apply the thermal control model update to the thermal control model at least in part by modifying one or more coefficients of the thermal control proportional-integral-differential algorithm.

6. The computing device according to claim 4, characterized in that, In the machine learning model, the one or more processing devices are configured to at least partially update the thermal control model by applying a temperature setpoint offset to the temperature setpoint of the thermal control proportional-integral-derivative algorithm.

7. The computing device according to claim 4, characterized in that, in The one or more processing devices are also configured to execute a fan control proportional-integral-derivative algorithm; The fan control proportional-integral-derivative (PI-DE) algorithm is configured to receive the fan speed setpoint output by the thermal control PI-DE algorithm and the fan speed data output by the fan tachometer as input; and The fan control proportional-integral-derivative algorithm is configured to output the fan control signal.

8. The computing device according to claim 1, characterized in that, The one or more processing devices are configured to: At the machine learning model, based at least in part on the performance data, the fan control model update is applied to the fan control model to generate an updated fan control model, wherein the fan control model is a proportional-integral-differential algorithm with a fan speed setpoint; and The fan control signal is generated at least in part by executing the updated fan control model.

9. The computing device according to claim 1, characterized in that, The performance data also includes one or more operating mode indications of the operating modes in which the application is executed.

10. The computing device according to claim 1, characterized in that, The performance data also includes one or more corresponding utilization levels and / or one or more corresponding performance counters for the one or more processing devices.

11. The computing device according to claim 1, characterized in that, The performance data also includes power consumption data of the one or more processing devices.

12. The computing device according to claim 1, characterized in that, The one or more processing devices are further configured to: Vent blockage is detected at least partially at the machine learning model, in which a vent in the housing of the computing device is blocked; and In response to the detection of the vent blockage, a vent blockage notification is output and displayed in the graphical user interface (GUI).

13. The computing device according to claim 1, characterized in that, It also includes a memory configured to store multiple machine learning models, including the machine learning model, wherein the multiple machine learning models are associated with multiple applications, including the application.

14. A method for a computing device, the method comprising: Execute the application; When the application is executed, performance data is collected, including: Temperature data received from one or more temperature sensors; and Fan speed data received from the fan tachometer; Fan control signals are generated, at least in part, by applying a machine learning model to the performance data; and Control the fan according to the fan control signal; The machine learning model is a reinforcement learning model; and The machine learning model has a loss function, including: The fan speed term is calculated as a function of the fan speed included in the fan speed data; and When the temperature data indicates a temperature higher than a predetermined temperature threshold, a temperature overshoot term should be added to the loss function.

15. The method according to claim 14, characterized in that, Further includes: At the machine learning model, based at least in part on the performance data, the thermal control model update is applied to the thermal control model to generate an updated thermal control model, wherein: The thermal control model is a proportional-integral-differential algorithm with a temperature setpoint; and The thermal control model is configured to receive the temperature data and output a fan speed setpoint; and The fan control signal is generated at least in part by executing the updated thermal control model.

16. The method according to claim 15, characterized in that, It also includes executing the proportional-integral-derivative algorithm for fan control, where: The fan control proportional-integral-derivative (PI-DE) algorithm is configured to receive the fan speed setpoint output by the thermal control PI-DE algorithm and the fan speed data output by the fan tachometer as input; and The fan control proportional-integral-derivative algorithm is configured to output the fan control signal.

17. The method according to claim 14, characterized in that, Further includes: At the machine learning model, based at least in part on the performance data, the fan control model update is applied to the fan control model to generate an updated fan control model, wherein the fan control model is a proportional-integral-differential algorithm with a fan speed setpoint; and The fan control signal is generated at least in part by executing the updated fan control model.

18. A computing device, comprising: One or more processing devices; One or more temperature sensors; fan; as well as Fan tachometer; The one or more processing devices are configured to: Receive reinforcement learning models from server computing devices; Execute the application; When the application is executed, performance data is collected, including: Temperature data received from the one or more temperature sensors; and Fan speed data received from the fan tachometer; Fan control signals are generated, at least in part, by applying the reinforcement learning model to the performance data; Control the fan according to the fan control signal; and Additional training is performed on the reinforcement learning model, at least in part, based on the performance data and the loss function of the reinforcement learning model. The reinforcement learning model has a loss function, including: The fan speed term is calculated as a function of the fan speed included in the fan speed data; and When the temperature data indicates a temperature higher than a predetermined temperature threshold, a temperature overshoot term should be added to the loss function.

19. A computer system comprising means for performing the method as claimed in any one of claims 14-17.

Citation Information

Patent Citations

  • Fan control method and device

    CN106211715A

  • Adaptive controller for PC cooling fans

    US20060108962A1

  • Thermal self-learning with reinforcement learning agent

    US20190042979A1