WO2024098313A1 - Ambient temperature estimation and device optimization - Google Patents
Ambient temperature estimation and device optimization Download PDFInfo
- Publication number
- WO2024098313A1 WO2024098313A1 PCT/CN2022/131031 CN2022131031W WO2024098313A1 WO 2024098313 A1 WO2024098313 A1 WO 2024098313A1 CN 2022131031 W CN2022131031 W CN 2022131031W WO 2024098313 A1 WO2024098313 A1 WO 2024098313A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- computing device
- temperature
- ambient temperature
- sum
- heat dissipation
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
Definitions
- Computing device performance may be limited (e.g., throttled) based on ergonomic and/or safety reasons (e.g., IEC safety standards 60950 and 62368) .
- ergonomic and/or safety reasons e.g., IEC safety standards 60950 and 62368
- handheld or laptop computing device performance may be reduced to maintain an ergonomic noise level and/or temperature in areas that may come in contact with a human for extended periods of time (e.g., long touch areas) .
- Device performance may be boosted in thermally restrictive scenarios (e.g., high ambient temperature environments) , for example, by tracking ambient temperature.
- Ambient temperature may be (e.g., accurately) estimated and used, for example, to enable a device to recognize high ambient temperature environments and adjust one or more operational parameters (e.g., limits/thresholds) , such as a target thermal (e.g., touch temperature) limit, an acoustic (e.g., fan) profile limit, a power limit, etc.
- operational parameters e.g., limits/thresholds
- raising a target touch temperature and/or a fan profile limit in a high temperature environment based on ambient temperature estimates may (e.g., significantly) improve device performance (e.g., by avoiding performance throttling that may otherwise occur if ambient temperature is unknown or inaccurately estimated) .
- a (e.g., mobile) computing device may include a temperature estimator configured to estimate (e.g., predict based on a thermal model) an ambient temperature outside the computing device as a difference between a first sum and a second sum.
- the first sum may comprise, for example, (e.g., a sum of) one or more of a first temperature in the computing device (e.g., a temperature of a power supply, such as a battery) , a rate of change of a second temperature in the computing device, and/or heat dissipation by the computing device (e.g., passive dissipation, such as conduction, and/or active dissipation, such as a fan) .
- a first temperature in the computing device e.g., a temperature of a power supply, such as a battery
- a rate of change of a second temperature in the computing device e.g., heat dissipation by the computing device (e.g., passive dissipation,
- the second sum may comprise, for example, (e.g., a sum of) one or more of a computing device workload (e.g., system, CPU and/or GPU power consumption) , and/or a difference between a third temperature in the computing device (e.g., internal air temperature near a power supply) and the ambient temperature.
- a computing device workload e.g., system, CPU and/or GPU power consumption
- a third temperature in the computing device e.g., internal air temperature near a power supply
- FIG. 1 shows a block diagram of an example computing environment for ambient temperature estimation and device optimization, according to an embodiment.
- FIG. 2 shows a block diagram of an example of developing a model for ambient temperature estimation and device optimization, according to an embodiment.
- FIG. 3 shows a block diagram of an example of using a model for ambient temperature estimation, according to an embodiment.
- FIG. 4 shows a block diagram of an example of using estimated ambient temperature estimation for device optimization, according to an embodiment.
- FIG. 5 shows a flowchart of an example method for ambient temperature estimation and device optimization, according to an embodiment.
- FIG. 6 shows a block diagram of an example computing device that may be used to implement example embodiments.
- computing device performance may be limited (e.g., throttled) based on ergonomic and/or safety reasons (e.g., IEC safety standards 60950 and 62368) .
- ergonomic and/or safety reasons e.g., IEC safety standards 60950 and 62368
- handheld or laptop computing device performance may be reduced to maintain an ergonomic noise level and/or temperature in areas that may come in contact with a human for extended periods of time (e.g., long touch areas) .
- a user using a device in a high ambient temperature area may experience unnecessary throttling due to overall increases in device temperatures.
- a (e.g., mobile) computing device may include a temperature estimator configured to estimate (e.g., predict based on a thermal model) an ambient temperature outside the computing device as a difference between a first sum and a second sum.
- the first sum may comprise, for example, (e.g., a sum of) one or more of a first temperature in the computing device (e.g., a temperature of a power supply, such as a battery) , a rate of change of a second temperature in the computing device, and/or heat dissipation by the computing device (e.g., passive dissipation, such as conduction, and/or active dissipation, such as a fan) .
- a first temperature in the computing device e.g., a temperature of a power supply, such as a battery
- a rate of change of a second temperature in the computing device e.g., a rate of change of a second temperature in the computing device
- heat dissipation by the computing device e.g., passive dissipation, such as conduction, and/or active dissipation, such as a fan
- the second sum may comprise, for example, (e.g., a sum of) one or more of a computing device workload (e.g., system, CPU and/or GPU power consumption) and/or a difference between a third temperature in the computing device (e.g., internal air temperature near a power supply, such as in a space between the power supply and a chassis of the computing device) and the ambient temperature.
- a computing device workload e.g., system, CPU and/or GPU power consumption
- a third temperature in the computing device e.g., internal air temperature near a power supply, such as in a space between the power supply and a chassis of the computing device
- Ambient temperature estimation may be implemented by using (e.g., raw or processed) measurements by a device to predict the temperature outside of the device (e.g., an in situ ambient temperature) .
- Accurate estimation of ambient temperature may support performance tuning (e.g., optimization) for computing devices, which may be subject to performance throttling to satisfy ergonomic and/or safety rules of operation.
- ambient temperature estimated by one or more devices may be provided as telemetry data, which may be used to control operation of one or more devices, systems, etc.
- HVAC heating ventilation and air conditioning
- a heating ventilation and air conditioning (HVAC) system in a building may receive telemetry data (e.g., estimated ambient temperature) throughout the building from one or more (e.g., fixed or mobile) devices, and may use the telemetry data to dynamically adjust HVAC operation (e.g., heating, cooling, ventilation) in general and/or specific areas accordingly.
- telemetry data e.g., estimated ambient temperature
- HVAC heating ventilation and air conditioning
- Computing devices may have thermal and acoustic limitations regardless of the environment that the users of the computing devices are in, for example, to comply with ergonomic and/or safety standards for “long touch” areas and/or manufacturer comfort guidelines.
- computing device measurements e.g., temperature, noise
- Device performance may be boosted in thermally restrictive scenarios (e.g., high ambient temperature environments) , for example, by tracking ambient temperature.
- Ambient temperature may be (e.g., accurately) estimated and used, for example, to enable a device to recognize high ambient temperature environments and adjust one or more operational parameters (e.g., limits/thresholds) , such as a target touch temperature limit, load/power consumption limit, and/or fan profile limit.
- operational parameters e.g., limits/thresholds
- a target touch temperature limit e.g., load/power consumption limit, and/or fan profile limit.
- Performance adjustments may be more accurate based on more accurate estimates of ambient temperature.
- a physics-based thermal model may be used for ambient temperature estimation.
- a physics-based thermal model may be in the form of an ordinary differential equation (ODE) .
- ODE ordinary differential equation
- a thermal model may reflect a rate of change of the temperature of a power supply (e.g., a battery) as being proportional to heat generated (e.g., by one or more CPUs) less heat dissipated (e.g., actively, such as by one or more fans, and/or passively, such as by conduction) .
- a model may be tested and validated, for example, using lab thermal testing. For example, measured fan speed, battery temperature, and CPU power in a computing device may be used to estimate ambient temperature (e.g., accurately within a 2 degrees Celsius margin of error) .
- a battery thermal sensor function may be to monitor a battery temperature.
- a battery thermal sensor may be one of multiple candidates to provide information to estimate ambient temperature, for example, due to the temperature changing properties of a battery.
- battery/battery sensor temperature changes relatively slowly, e.g., due to the thermal mass of the battery. Battery temperature is not influenced quickly based on system loading. However, the impact of ambient temperature on the battery sensor may be relatively weak.
- Temperature variation of internal thermal sensors may be driven (e.g., mainly) by the heat generated by one or more processors (e.g., CPUs) and heat dissipated by passive and/or active cooling devices (e.g., fans) .
- Passive cooling e.g., heat passively dissipated to the ambient environment
- Data volume for model building may be limited, which may limit the applicability of machine learning models.
- a model may derive ambient temperature signals, at least in part, from battery temperature sensor data.
- a model may be in the form of an ordinary differential equation. Parameters may be determined from collected (e.g., empirical) data.
- a model may be validated through environmental (e.g., thermal) testing.
- a model may utilize the combination of fan speed, battery temperature, and CPU power to estimate ambient temperature accurately (e.g., within an error margin of two Celsius degrees) .
- Other implementations may utilize temperature measurements and information from other areas inside a computing device
- FIG. 1 shows a block diagram of an example computing environment 100 for ambient temperature estimation and device optimization, according to an embodiment.
- Other examples of ambient temperature estimation and device optimization may be implemented.
- computing environment 100 includes computing device 102, which may or may not be communicatively coupled to one or more other devices, such as second device 138, third device 140, etc.
- a computing environment may be any computing environment (e.g., any combination of hardware, software, and firmware) .
- An example computing device with example features is presented in FIG. 6.
- Computing device 102 may be situated in various indoor and/or outdoor environments with one or more ambient conditions 136 that may be estimated by computing device 102.
- Example computing environment 100 presents one of many possible examples of computing environments.
- Example computing environment 100 may comprise any number of computing devices and/or servers, such as the example components illustrated in FIG. 1 and other additional or alternative devices not expressly illustrated.
- computing device 102 may be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., a device, a personal digital assistant (PDA) , a laptop computer, a notebook computer, a tablet computer such as an Apple iPad TM , a netbook, etc. ) , a mobile phone, a wearable computing device, or other type of mobile device, or a stationary computing device such as a desktop computer or PC (personal computer) , or a server.
- a mobile computer or mobile computing device e.g., a device, a personal digital assistant (PDA) , a laptop computer, a notebook computer, a tablet computer such as an Apple iPad TM , a netbook, etc.
- PDA personal digital assistant
- laptop computer e.g., a laptop computer, a notebook computer, a tablet computer such as an Apple iPad TM , a netbook, etc.
- a mobile phone e.g., a wearable computing device, or other type of
- FIG. 6 shows an example of components in a computing device.
- Computing device 102 shows some computing components for clarity.
- Computing device 102 may include, for example, a power supply 104, one or more processors 106, a GPU 108, one or more user interfaces 110, a passive heat dissipator 112, an active heat dissipator 114, one or more component temperature sensors 116, one or more power consumption sensors 118, memory 120, one or more fan speed sensors 130, one or more device temperature sensors 132, etc.
- Active heat generators may include, for example, power supply 104, processor (s) 106, and GPU 108.
- Power supply 104 may include any type of power source, such as a battery in a mobile device.
- Passive heat generators e.g., heat traps
- Passive heat generation may be accounted for in passive heat dissipation.
- Processor (s) 106 may include any type of processing unit.
- Processor 106 is an electrical and/or optical circuit implemented in one or more physical hardware electrical circuit device elements and/or integrated circuit devices (e.g., semiconductor material chips or dies) as a central processing unit (CPU) , a microcontroller, a microprocessor, and/or other physical hardware processor circuit.
- Processor 106 may execute program code stored in a computer readable medium, such as program code of operating systems and applications 122, such as ambient temperature (temp) estimator 124, temperature-based (temp-based) controller 126, and/or temperature telemetry 128, etc.
- program code stored in a computer readable medium, such as program code of operating systems and applications 122, such as ambient temperature (temp) estimator 124, temperature-based (temp-based) controller 126, and/or temperature telemetry 128, etc.
- GPU 108 may comprise a graphics processing unit configured to process graphics and render video. GPU 108 may be separate from or integrated with processor (s) 106 (e.g., on a board/card) .
- Passive heat dissipator 112 may include one or more mechanical components that conduct/transfer and dissipate heat, such as a chassis of computing device 102, one or more heat sinks coupled to heat generating devices, such as power supply 104, processor (s) 106, GPU 108, etc. Heat may be dissipated, for example, to air and/or a coolant (e.g., a liquid) .
- a coolant e.g., a liquid
- Active heat dissipator 114 may include one or more powered cooling components, such as one or more fans. Fans may be controlled to operate at one or more discrete/fixed speeds or continuously variable speeds. Speed may be indicated by revolutions per minute (RPM) . Fan speed may be associated with noise, which may be measured in decibels (dB) .
- RPM revolutions per minute
- dB decibels
- Component temperature sensor (s) 116 may include one or more temperature sensors, which may be placed on or near one or more components in computing device 102. For example, there may be a CPU temperature sensor, a GPU temperature sensor, a power supply temperature sensor, etc. Component temperature sensor (s) 116 may include one or more types of sensors, such as thermocouples, thermistors, semiconductors, etc.
- Power consumption sensor (s) 118 may include one or more component and/or system load or power sensors (e.g., CPU load sensor, GPU load sensor, system load sensor) . Power consumption sensor (s) 118 may directly or indirectly detect power consumption. Power consumption sensor (s) 118 may be associated with hardware, firmware and/or software. For example, software may perform calculations on detected voltages, clock frequencies, and/or other indications of loading to calculate/determine (e.g., estimate) power consumption.
- Memory 120 may include one or more types of memory, such as read only memory (ROM) 608 and random-access memory (RAM) 610.
- Memory 120 may store, for loading and execution, OS and application (s) 122, such as ambient temperature (temp) estimator 124, temp-based controller 126, and/or temperature telemetry 128.
- OS and application OS and application 122, such as ambient temperature (temp) estimator 124, temp-based controller 126, and/or temperature telemetry 128.
- Fan speed sensor (s) 130 may detect a control signal or operating speed of a fan (e.g., an active heat dissipator 114) . Fan speed sensor (s) 130 may be associated with hardware, firmware and/or software.
- Device temperature sensor (s) 132 may include one or more temperature sensors, which may be placed in one or more locations in computing device 102, such as on a chassis or case that a user may touch, near power supply 104, near processor (s) 106, etc.
- Device temperature sensor (s) 132 may include one or more types of sensors, such as thermocouples, thermistors, semiconductors, etc.
- User interface (s) 110 may include, for example, one or more user interfaces, such as a pointing device (e.g., mouse, pen) , a typing device (e.g., keyboard) , speakers, microphone, display (e.g., touchscreen) , graphical user interface (GUI) generated by executed instructions and displayed by a display, etc.
- a pointing device e.g., mouse, pen
- a typing device e.g., keyboard
- speakers e.g., speakers
- microphone e.g., touchscreen
- GUI graphical user interface
- an OS and/or application 122 executed by processor (s) 106 may generate a displayed GUI for an administrator (admin) and/or user to interact with to customize power management for computing device 102.
- a user may indicate, for example, that computing device 102 should maintain performance (e.g., best performance rather than battery life) despite one or more variations (e.g., changes in remaining battery power and/or ambient temperature) .
- Computing device 102 may include (e.g., execute) one or more operating systems and applications 122, virtual machines (VMs) , etc., that may be executed, hosted, and/or stored therein or via one or more other computing devices via network (s) (not shown) .
- Computing device 102 may execute one or more processes in one or more computing environments.
- a process is an instance of any type of executable (e.g., binary, program, application) that is being executed by computing device 102.
- a process may include an automated ambient temperature (temp) estimator 124, temp-based controller 126, and/or temperature telemetry 128.
- Computing device 102 may be configured to estimate one or more ambient conditions (e.g., indoor/outdoor temperature) 136, for example, using ambient temp estimator 124.
- Computing device 102 may be configured to provide estimated ambient temperature to temp-based controller 126 and/or temperature telemetry 128.
- Computing device 102 may estimate ambient temperature based on information (e.g., data) generated or otherwise collected by computing device 102, such as one or more sensor measurements.
- sensor measurements may include measurements generated by component temp sensor (s) 116, power sensor (s) 118, fan speed sensor (s) 130, device temp sensor (s) 132, etc.
- Sensor measurements may be collected, for example, periodically (e.g., at a one second interval) and/or based on events.
- ambient temp estimator 124 may estimate ambient temperature in ambient conditions 136 in accordance with Eq. (1) , with parameters described in Table 1.
- Eq. (1) models power supply temperature (e.g., battery sensor temperature (B) ) in the form of an ordinary differential equation (ODE) .
- the first term on the right side of Eq. (1) denotes active heat generation, as may be indicated by heat generated from a processor (e.g., CPU (C) ) .
- the other two terms respectively, describe active cooling (e.g., from fans (F) ) and passive cooling, which dissipate heat to the ambient environment surrounding computing device 102.
- the dependence of temperature difference in passive cooling may be governed by Newton’s law of cooling.
- measurements of passive heat generation, active heat generation, passive cooling, active cooling, and their relationship with ambient temperature may be device specific (e.g., component specific) and/or model specific.
- a device-to-ambient temperature model may be a physics-inspired machine learning (ML) model.
- Eq. (1) may be solved for estimated ambient temperature T or T est , as indicated in Eq. (2) .
- Ambient temperature estimations may be useful for computing device 102 and/or other devices.
- temp-based controller 126 may use ambient temperature estimations by ambient temp estimator 124 to perform one or more actions, such as control one or more components, dynamically change operating thresholds, etc.
- Temp-based controller 126 may control components and/or operating thresholds based on ergonomic and/or safety rules, such as long touch temperature limitations and/or acoustic limitations.
- Temp-based controller 126 may, for example, dynamically (e.g., directly or indirectly) control processor (s) 106, GPU 108, active heat dissipator (s) 114, etc. and/or component operating parameters based on estimated ambient temperature.
- Temp-based controller 126 may, for example, raise operating thresholds for touch temperature and/or acoustical noise in high ambient temperature environments to maintain performance or provide a performance improvement, thereby avoiding unnecessary throttling of performance that may occur by limiting processor power consumption and/or fan speed when ambient temperature is unknown.
- Temperature telemetry 128 may access or receive ambient temperature estimations by ambient temperature estimator and provide them to one or more external devices, such as second device 138. Temperature telemetry 128 may utilize wired and/or wireless transmission capabilities of computing device 102 (not shown) that interface with communication network (s) 134 to provide ambient temperature estimations.
- second device 138 may comprise a WiFi HVAC controller, such as an array of WiFi thermostats throughout a building capable of communicating with external devices to receive ambient temperature estimates. Second device 138 may use ambient temperature estimates, for example, to generate a temperature map in a building and control a third device 140 (e.g., building HVAC system) to target heating, cooling, and/or ventilation to more accurately reflect thermostat set temperatures.
- a WiFi HVAC controller such as an array of WiFi thermostats throughout a building capable of communicating with external devices to receive ambient temperature estimates.
- Second device 138 may use ambient temperature estimates, for example, to generate a temperature map in a building and control a third device 140 (e.g., building HVAC system) to target heating, cooling, and/or ventilation to more accurately reflect thermostat set temperatures.
- third device 140 e.g., building HVAC system
- Communication network (s) 134 may include one or more public access and/or restricted (e.g., private) access networks, which may be wired and/or wireless.
- Communication network (s) 134 may include, for example, one or more of any of a local area network (LAN) , a wide area network (WAN) , a personal area network (PAN) , a combination of communication networks, such as the Internet, and/or a virtual network.
- computing device 102 and one or more other devices, such as second device 138 may be communicatively coupled via communication network (s) 134.
- computing device 102 and one or more other devices may communicate via one or more application programming interfaces (APIs) , and/or according to other interfaces and/or techniques.
- Computing device 102 and one or more other devices, such as second device 138 may include one or more network interfaces that enable communications between devices. Examples of such a network interface, wired or wireless, may include an IEEE 802.11 wireless LAN (WLAN) wireless interface, a Worldwide Interoperability for Microwave Access (Wi-MAX) interface, an Ethernet interface, a Universal Serial Bus (USB) interface, a cellular network interface, a Bluetooth TM interface, a near field communication (NFC) interface, etc. Further examples of network interfaces are described elsewhere herein.
- FIGS. 2-4 provide examples for the selection of a model, the generation of values in the model (e.g., training of the model) , which may be device-specific and/or model-specific, the use of the model (e.g., by a computing device) to estimate ambient temperature, and the use of the ambient temperature to directly or indirectly control operation of one or more devices (e.g., the computing device or another device) .
- a thermal model may be selected for a device to estimate external (ambient) temperature based on internal device data.
- the thermal model may be, for example, an ordinary differential equation (ODE) .
- Empirical data may be obtained to develop the selected model (e.g., train the model) based on data/measurements obtained while the device is operated with varying performance cycles in a temperature cycling chamber.
- a parameter fit may be performed, where values for model coefficients (e.g., weights) and/or variables may be determined by fitting the model to the empirical training data.
- the thermal model e.g., the ODE equation
- the model may be evaluated (e.g., validated) by testing the model’s performance using the determined parameter values and empirical data (e.g., measured data in the dataset) to predict/estimate ambient temperature indicated in the test dataset.
- Estimated/predicted ambient temperature estimated/predicted by the model may be compared to actual measurements of ambient temperature to validate (e.g., or reject) the model.
- the model e.g., a validated model
- the estimated/predicted ambient temperature may be used by the device and/or by one or more other devices.
- the device may optimize device performance by dynamically adjusting thermal and acoustic limits, which may maintain or improve device performance in high ambient temperature environments.
- FIG. 2 shows a block diagram of an example 200 of developing a model for ambient temperature estimation and device optimization, according to an embodiment.
- a device-to-ambient temperature model may be device and/or model specific.
- Example 200 shown in FIG. 2 may be used to test multiple devices and multiple models.
- example 200 includes an environmental cycler 202, a device under test (DUT) 204, a tester 214, a model selector 218, a solver 220, and a model dictionary 224.
- Environmental cycler 202 may comprise, for example, an environmental testing chamber, such as a thermal cycling chamber.
- DUT 204 may be placed inside environmental cycler 202 to simulate a wide variety of ambient conditions while DUT 204 undergoes a wide variety of operation, which may generate measurement data for tester 214.
- Device under test (DUT) 204 may be any device for which a device-to-ambient model may be constructed.
- DUT 204 may be, for example, computing device 102 shown in FIG. 1.
- DUT 204 may include one or more sensors, such as device temperature (temp) sensor (s) 206, component temperature (temp) sensor (s) 208, power consumption sensor (s) 210, fan speed sensor (s) 212, etc.
- DUT 204 may be communicatively coupled (e.g., wired or wirelessly) to tester 214 during operation of environmental cycler 202 and cycling of operation of DUT 204.
- Tester 214 may comprise one or more computing devices configured to control operation of environmental cycler 202, control operation of DUT 204, collect and/or process data, such as measurements within environmental cycler 202 and measurements within DUT 204 during testing. Tester 214 may execute one or more test programs, which may be device-specific and/or model-specific. Tester 214 may generate empirical data (e.g., dataset 216) for evaluation by solver 220. Tester 214 may operate DUT 204 with a variety of workloads while under a variety of constant and varying temperatures in a variety of cycles.
- ambient temperature may vary between stable and unstable
- a DUT battery may vary between charging and discharging
- performance customization e.g., Microsoft power slider
- processing may vary between stable and intermittent loads at varying levels
- test durations may vary, etc.
- Dataset 216 may include sensor measurements (e.g., values for measurable variables) generated by environmental cycler 202 (e.g., chamber ambient temperature) , DUT 204 (e.g., device temp sensor (s) 206, component temp sensor (s) 208, power consumption sensor (s) 210, fan speed sensor (s) 212) , etc. for discrete and/or continuous tests executed by tester 214.
- sensor measurements e.g., values for measurable variables
- environmental cycler 202 e.g., chamber ambient temperature
- DUT 204 e.g., device temp sensor (s) 206, component temp sensor (s) 208, power consumption sensor (s) 210, fan speed sensor (s) 212) , etc.
- Model selector 218 may select from among one or more models that solver 220 may attempt to fit to dataset 216.
- a model may be, for example, an algorithm with one or more (e.g., measurable) variables, one or more coefficients (e.g., weights) , etc.
- model selector 218 may select the ODE model shown in Eq. (1) , which may be solved for ambient temperature as shown in Eq. (2) .
- model selector 218 may select a machine learning (ML) model.
- ML machine learning
- Solver 220 may attempt to fit the model selected by model selector 218 to dataset 216. Solver 220 may determine the (e.g., best) fixed and/or variable values for weights (e.g., coefficients) and variables in the selected model to provide a (e.g., best) fit for the dataset 216, e.g., in terms of predicting actual environment values (e.g., temperature) in environmental cycler 202. In some examples (e.g., during the parameter fit) , none or more non-linear minimization methods may be adopted, e.g., to solve the ordinary differential equation (ODE) .
- ODE ordinary differential equation
- Solver 220 may limit data smoothing, for example, given that measured/collected data may be generated at relatively fast (e.g., in terms of seconds) compared to relatively slow variation of ambient temperature (e.g., degree variations in the tens of minutes) . Accordingly, data pre-processing procedures on the input data and post-processing on output ambient may be implemented by solver 220.
- Data pre-processing may include, for example, averaging measured/collected data (e.g., obtained at one second intervals) over a (e.g., fixed) time window (e.g., 30 seconds) .
- a time-window may be selected, for example, based on the performance (e.g., accuracy) of solver 220.
- Data post-processing may include, for example, estimating ambient temperature by calculating a rolling window mean over a window size (e.g., 180 seconds) .
- post-processed data may be the mean of the data from solver 220 in the prior 180 second time window.
- a time window (e.g., 180 seconds) may be selected based on the performance (e.g., accuracy) of solver 220.
- data post-processing may include averaging the data from solver 220 over a (e.g., fixed) time window. The convolution of the data from solver 220 and a fixed time window may be calculated.
- Various implementations may utilize various models, such as a physics-based ODE model and/or ML-based models, such as Long Short Term Memory (LSTM) and a spatial-temporal transformer.
- An ODE model may perform better than an ML model, for example, when there are fewer parameters to learn and/or a limited volume of data.
- a strategy to solve a data shortage issue may be “inductive bias” or domain knowledge, and/or data augmentation (e.g., using a simulator with high fidelity) .
- Solver 220 may evaluate and validate the solved model (e.g., with selected values for coefficients and/or variables) , for example, using empirical data (e.g., ground truth) information in dataset 216. Solver 220 may generate a set of model values 222 for weights (e.g., coefficients) and/or variables to use in the selected model, such as values for coefficients alpha ( ⁇ ) , beta ( ⁇ ) , and gamma ( ⁇ ) , and variable delta temp ( ⁇ T) , as shown in Eq. (2) .
- weights e.g., coefficients
- ⁇ T variable delta temp
- Model dictionary 224 may store (e.g., in accessible file (s) ) model values 222 associated with the selected model and DUT 204. Model dictionary 224 may store several sets of values, which may be device-specific and/or model-specific. Model dictionary 224 may be accessed, for example, by ambient temp estimator 124 to apply stored model values 222 and (e.g., real time or live) sensor measurement values (e.g., after preprocessing) by component temp sensor (s) 116, power consumption sensor (s) 118, fan speed sensor (s) 130, device temp sensor (s) 132, etc. to Eq. (2) to generate ambient temperature estimations of ambient conditions 136.
- ambient temp estimator 124 to apply stored model values 222 and (e.g., real time or live) sensor measurement values (e.g., after preprocessing) by component temp sensor (s) 116, power consumption sensor (s) 118, fan speed sensor (s) 130, device temp sensor (s) 132, etc. to Eq. (2) to generate ambient temperature
- FIG. 3 shows a block diagram of an example 300 of using a model for ambient temperature estimation, according to an embodiment.
- Example 300 may be implemented by a device that estimates ambient temperature.
- example 300 includes a model dictionary 302 and an ambient temperature (temp) estimator 304.
- Model dictionary 302 may be a resource that indicates (e.g., stores/accesses one or more files) parameter values for ambient temp estimator 304.
- Parameter values e.g., ⁇ , ⁇ , ⁇ and ⁇ T
- Parameter values may be stored in memory accessible by a computing device that estimates ambient temperature.
- Parameter values e.g., ⁇ , ⁇ , ⁇ and ⁇ T
- model dictionary may be a program that maintains a map of devices and/or models to parameter sets.
- model dictionary 302 may be a look up table (LUT) with a map of devices and/or models to parameter sets.
- Ambient temp estimator 304 may (e.g., as shown by example in FIG. 3) estimate ambient temperature in ambient conditions in accordance with Eq. (1) , e.g., with parameters described in Table 1.
- Ambient temp estimator 304 may access model dictionary 302, for example, by providing a device type and/or model type. Model dictionary 302 may provide parameter values to ambient temp estimator 304, for example, based on the device type and/or model type provided by ambient temp estimator 304. In some examples, ambient temp estimator 304 may select a different model (e.g., and parameter set) for different conditions (e.g., device operating conditions, device settings, such as performance settings) .
- model dictionary 302 may provide parameter values to ambient temp estimator 304, for example, based on the device type and/or model type provided by ambient temp estimator 304.
- ambient temp estimator 304 may select a different model (e.g., and parameter set) for different conditions (e.g., device operating conditions, device settings, such as performance settings
- Ambient temp estimator 304 may receive (e.g., in response to a periodic and/or event-based request) measured variable values (e.g., sensor input (s) ) B, C, and F (e.g., generated by sensors in the computing device) .
- Ambient temp estimator 304 may (pre) process measured variable values, for example, to normalize the values in accordance with values expected by ambient temp estimator 304.
- Ambient temp estimator 304 may use current and previous measured value of power supply temperature (e.g., battery temperature B) to determine a value of dB/dt.
- power supply temperature e.g., battery temperature B
- ambient temp estimator 304 may include a function (e.g., getAmbientTemperature) that takes as input the current battery temperature B (e.g., in units dK) , the previous battery temperature (e.g., in dK) , the fan speed (e.g., in RPM) , the CPU power C (e.g., in mW) , and a device type identifier (e.g., device_id_enum) indicating the device-specific and/or model-specific parameters to request from model dictionary 302 (e.g., ambientParams dictionary) . Parameters received from model dictionary 302 may be placed into variables in the model (e.g., ODE) .
- getAmbientTemperature e.g., getAmbientTemperature
- Ambient temp estimator 304 may determine (e.g., calculate) estimated ambient temperature T est by applying measured variable values (e.g., B, C, F) and parameter values (e.g., ⁇ , ⁇ , ⁇ and ⁇ T) to the model (e.g., Eq. (2) ) .
- measured variable values e.g., B, C, F
- parameter values e.g., ⁇ , ⁇ , ⁇ and ⁇ T
- FIG. 4 shows a block diagram of an example 400 of using estimated ambient temperature estimation, according to an embodiment.
- Example 400 shows several examples of using estimated ambient temperature, such as to maintain/improve (e.g., optimize) device performance and/or to provide telemetry data to another device.
- Example 400 may be implemented by a device that estimates ambient temperature.
- example 400 includes a temperature-based (temp-based) controller 404, temperature telemetry 406, and a transceiver 408.
- Temp-based controller 404 may receive as inputs, for example, estimated ambient temperature T est and one or more device performance settings.
- Device performance settings may include, for example, configured (e.g., default or customized) device operation performance rules. For example, a user may interact with Microsoft Performance Power Slider to indicate preferences relating to device performance, battery life, etc.
- a performance setting may impact device performance at various ambient temperatures. In an example, a device performance setting indicating maximum performance may allow fan speed, noise, and CPU power consumption to rise at high ambient temperatures.
- Tempor-based controller 404 may generate one or more outputs (e.g., component control signal (s) ) , which may be used to perform one or more actions based on received inputs.
- temp-based controller 404 may (e.g., based on received estimated ambient temperature and/or other inputs, such as performance parameter (s) ) dynamically control one or more components, dynamically change operating thresholds, etc.
- Temp-based controller 404 may control one or more device components and/or operating thresholds based on ergonomic and/or safety rules, such as long touch temperature limitations and/or acoustic limitations.
- Temp-based controller 404 may, for example, dynamically (e.g., directly or indirectly) control processor (s) , GPU, active heat dissipator (s) , etc. and/or component operating parameters (e.g., operating profiles/thresholds) based on estimated ambient temperature T est and device performance setting (s) .
- Temp-based controller 404 may, for example, raise operating thresholds for touch temperature (e.g., target temp profile) and/or acoustical noise (e.g., target fan profile) in high ambient temperature environments to maintain performance or provide a performance improvement, thereby avoiding unnecessary throttling of performance that may occur by limiting processor power consumption and/or fan speed when ambient temperature is unknown.
- Temperature telemetry 406 may receive as inputs, for example, estimated ambient temperature T est and additional information. Temperature telemetry 406 may access or receive ambient temperature estimations by ambient temperature estimator and provide them to one or more external devices. Temperature telemetry 406 may provide telemetry data, such as estimated ambient temperature, device location (e.g., WiFi information, GPS coordinates) , etc., to transceiver 408 for transmission to one or more external devices.
- device location e.g., WiFi information, GPS coordinates
- Transceiver 408 may utilize any type of communication, whether wired and/or wireless.
- Transceiver 408 may include one or more communication interfaces (e.g., transmitter, receiver) that enable communications with external devices. Examples of such a network interface, wired or wireless, may include an IEEE 802.11 wireless LAN (WLAN) wireless interface, a Worldwide Interoperability for Microwave Access (Wi-MAX) interface, an Ethernet interface, a Universal Serial Bus (USB) interface, a cellular network interface, a Bluetooth TM interface, a near field communication (NFC) interface, etc. Further examples of communication interfaces are described elsewhere herein.
- transceiver 408 may transmit telemetry information to an HVAC controller soliciting information from mobile devices to receive ambient temperature estimates.
- Second device 138 may use ambient temperature estimates, for example, to generate a temperature map and control a building HVAC system to provide heating, cooling, and/or ventilation.
- second device 138 can obtain a highly accurate temperature map of the building and then control various aspects of the HVAC system in view of such temperature map to achieve a desired temperature in various areas of the building.
- FIG. 5 shows a flowchart of an example method 500 for ambient temperature estimation and device optimization, according to an example embodiment.
- Embodiments disclosed herein and other embodiments may operate in accordance with example method 500.
- Method 500 comprises steps 502-504.
- other embodiments may operate according to other methods.
- Other structural and operational embodiments will be apparent to persons skilled in the relevant art (s) based on the foregoing discussion of embodiments.
- No steps are required unless expressly indicated or inherently required.
- No order of steps is required unless expressly indicated or inherently required.
- steps may be added, removed, implemented in the alternative, e.g., in any combination or order.
- FIG. 5 is simply one of many possible embodiments. Embodiments may implement fewer, more or different steps.
- the ambient temperature outside a computing device may be estimated as a difference between a first sum and a second sum.
- the first sum may comprise a first temperature in the computing device, a rate of change of a second temperature in the computing device, and a heat dissipation by the computing device.
- the second sum may comprise a workload of the computing device and a difference between a third temperature in the computing device and the ambient temperature.
- ambient temp estimator 124/304 may estimate ambient temperature 136 based on the temperature model shown in Eq.
- the first sum may comprise a (e.g., weighted) first temperature in the computing device (e.g., battery temp B) , a (e.g., weighted) rate of change of a second temperature in the computing device (e.g., dB/dt) , and a (e.g., weighted) heat dissipation by the computing device (e.g., fan speed F) .
- a first temperature in the computing device e.g., battery temp B
- a rate of change of a second temperature in the computing device e.g., dB/dt
- a heat dissipation by the computing device e.g., fan speed F
- the second sum may comprise a (e.g., weighted) workload of the computing device (e.g., CPU power consumption C) and a (e.g., weighted) difference (e.g., ⁇ T) between a third temperature in the computing device (e.g., internal air temp near battery, such as in a space between the battery and a chassis of the computing device) and the ambient temperature (e.g., T) .
- a workload of the computing device e.g., CPU power consumption C
- a (e.g., weighted) difference e.g., ⁇ T
- a third temperature in the computing device e.g., internal air temp near battery, such as in a space between the battery and a chassis of the computing device
- the ambient temperature e.g., T
- one or more operating parameters of the computing device may be dynamically adjusted based, at least in part, on the ambient temperature.
- temp-based controller 126/404 may generate one or more component control signals to dynamically (e.g., directly or indirectly) control processor (s) 106, GPU 108, active heat dissipator 114, etc. and/or component operating parameters based on estimated ambient temperature.
- the embodiments described, along with any circuits, components and/or subcomponents thereof, as well as the flowcharts/flow diagrams described herein, including portions thereof, and/or other embodiments, may be implemented in hardware, or hardware with any combination of software and/or firmware, including being implemented as computer program code configured to be executed in one or more processors and stored in a computer readable storage medium, or being implemented as hardware logic/electrical circuitry, such as being implemented together in a system-on-chip (SoC) , a field programmable gate array (FPGA) , and/or an application specific integrated circuit (ASIC) .
- SoC system-on-chip
- FPGA field programmable gate array
- ASIC application specific integrated circuit
- a SoC may include an integrated circuit chip that includes one or more of a processor (e.g., a microcontroller, microprocessor, digital signal processor (DSP) , etc. ) , memory, one or more communication interfaces, and/or further circuits and/or embedded firmware to perform its functions.
- a processor e.g., a microcontroller, microprocessor, digital signal processor (DSP) , etc.
- memory e.g., a central processing unit (CPU) , etc.
- DSP digital signal processor
- Embodiments disclosed herein may be implemented in one or more computing devices that may be mobile (a mobile device) and/or stationary (a stationary device) and may include any combination of the features of such mobile and stationary computing devices. Examples of computing devices in which embodiments may be implemented are described as follows with respect to FIG. 6.
- FIG. 6 shows a block diagram of an exemplary computing environment 600 that includes a computing device 602.
- Computing device 602 is an example of computing device 102 of FIG. 1, which may include one or more of the components of computing device 602.
- computing device 602 is communicatively coupled with devices (not shown in FIG. 6) external to computing environment 600 via network 604.
- Network 604 comprises one or more networks such as local area networks (LANs) , wide area networks (WANs) , enterprise networks, the Internet, etc., and may include one or more wired and/or wireless portions.
- Network 604 may additionally or alternatively include a cellular network for cellular communications.
- Computing device 602 is described in detail as follows
- Computing device 602 can be any of a variety of types of computing devices.
- computing device 602 may be a mobile computing device such as a handheld computer (e.g., a personal digital assistant (PDA) ) , a laptop computer, a tablet computer (such as an Apple iPad TM ) , a hybrid device, a notebook computer (e.g., a Google Chromebook TM by Google LLC) , a netbook, a mobile phone (e.g., a cell phone, a smart phone such as an by Apple Inc., a phone implementing the Android TM operating system, etc.
- PDA personal digital assistant
- laptop computer such as an Apple iPad TM
- tablet computer such as an Apple iPad TM
- a hybrid device such as an Apple iPad TM
- a notebook computer e.g., a Google Chromebook TM by Google LLC
- netbook e.g., a mobile phone (e.g., a cell phone, a smart phone such as an by Apple Inc., a phone
- Computing device 602 may alternatively be a stationary computing device such as a desktop computer, a personal computer (PC) , a stationary server device, a minicomputer, a mainframe, a supercomputer, etc.
- a wearable computing device e.g., a head-mounted augmented reality and/or virtual reality device including smart glasses such as Glass TM , Oculus of Facebook Technologies, LLC, etc.
- Computing device 602 may alternatively be a stationary computing device such as a desktop computer, a personal computer (PC) , a stationary server device, a minicomputer, a mainframe, a supercomputer, etc.
- computing device 602 includes a variety of hardware and software components, including a processor 610, a storage 620, one or more input devices 630, one or more output devices 650, one or more wireless modems 660, one or more wired interfaces 680, a power supply 682, a location information (LI) receiver 684, and an accelerometer 686.
- Storage 620 includes memory 656, which includes non-removable memory 622 and removable memory 624, and a storage device 690. Storage 620 also stores an operating system 612, application programs 614, and application data 616.
- Wireless modem (s) 660 include a Wi-Fi modem 662, a Bluetooth modem 664, and a cellular modem 666.
- Output device (s) 650 includes a speaker 652 and a display 654.
- Input device (s) 630 includes a touch screen 632, a microphone 634, a camera 636, a physical keyboard 638, and a trackball 640. Not all components of computing device 602 shown in FIG. 6 are present in all embodiments, additional components not shown may be present, and any combination of the components may be present in a particular embodiment. These components of computing device 602 are described as follows.
- a single processor 610 e.g., central processing unit (CPU) , microcontroller, a microprocessor, signal processor, ASIC (application specific integrated circuit) , and/or other physical hardware processor circuit
- processors 610 may be present in computing device 602 for performing such tasks as program execution, signal coding, data processing, input/output processing, power control, and/or other functions.
- Processor 610 may be a single-core or multi-core processor, and each processor core may be single-threaded or multithreaded (to provide multiple threads of execution concurrently) .
- Processor 610 is configured to execute program code stored in a computer readable medium, such as program code of operating system 612 and application programs 614 stored in storage 620.
- Operating system 612 controls the allocation and usage of the components of computing device 602 and provides support for one or more application programs 614 (also referred to as “applications” or “apps” ) .
- Application programs 614 may include common computing applications (e.g., e-mail applications, calendars, contact managers, web browsers, messaging applications) , further computing applications (e.g., word processing applications, mapping applications, media player applications, productivity suite applications) , one or more machine learning (ML) models, as well as applications related to the embodiments disclosed elsewhere herein.
- ML machine learning
- bus 606 is a multiple signal line communication medium (e.g., conductive traces in silicon, metal traces along a motherboard, wires, etc. ) that may be present to communicatively couple processor 610 to various other components of computing device 602, although in other embodiments, an alternative bus, further buses, and/or one or more individual signal lines may be present to communicatively couple components.
- Bus 606 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures.
- Non-removable memory 622 includes one or more of RAM (random access memory) , ROM (read only memory) , flash memory, a solid-state drive (SSD) , a hard disk drive (e.g., a disk drive for reading from and writing to a hard disk) , and/or other physical memory device type.
- RAM random access memory
- ROM read only memory
- flash memory flash memory
- SSD solid-state drive
- Non-removable memory 622 may include main memory and may be separate from or fabricated in a same integrated circuit as processor 610. As shown in FIG. 6, non-removable memory 622 stores firmware 618, which may be present to provide low-level control of hardware.
- firmware 618 examples include BIOS (Basic Input/Output System, such as on personal computers) and boot firmware (e.g., on smart phones) .
- Removable memory 624 may be inserted into a receptacle of or otherwise coupled to computing device 602 and can be removed by a user from computing device 602.
- Removable memory 624 can include any suitable removable memory device type, including an SD (Secure Digital) card, a Subscriber Identity Module (SIM) card, which is well known in GSM (Global System for Mobile Communications) communication systems, and/or other removable physical memory device type.
- One or more of storage device 690 may be present that are internal and/or external to a housing of computing device 602 and may or may not be removable. Examples of storage device 690 include a hard disk drive, a SSD, a thumb drive (e.g., a USB (Universal Serial Bus) flash drive) , or other physical storage device.
- One or more programs may be stored in storage 620.
- Such programs include operating system 612, one or more application programs 614, and other program modules and program data.
- Examples of such application programs may include, for example, computer program logic (e.g., computer program code/instructions) for implementing one or more of ambient temp estimator 124, temp-based controller 126, temperature telemetry 128, ambient temp estimator 304, temp-based controller 404, temperature telemetry 406, along with any components and/or subcomponents thereof, as well as the flowcharts/flow diagrams (e.g., method 500) described herein, including portions thereof, and/or further examples described herein.
- computer program logic e.g., computer program code/instructions
- Storage 620 also stores data used and/or generated by operating system 612 and application programs 614 as application data 616.
- application data 616 include web pages, text, images, tables, sound files, video data, and other data, which may also be sent to and/or received from one or more network servers or other devices via one or more wired or wireless networks.
- Storage 620 can be used to store further data including a subscriber identifier, such as an International Mobile Subscriber Identity (IMSI) , and an equipment identifier, such as an International Mobile Equipment Identifier (IMEI) .
- IMSI International Mobile Subscriber Identity
- IMEI International Mobile Equipment Identifier
- a user may enter commands and information into computing device 602 through one or more input devices 630 and may receive information from computing device 602 through one or more output devices 650.
- Input device (s) 630 may include one or more of touch screen 632, microphone 634, camera 636, physical keyboard 638 and/or trackball 640 and output device (s) 650 may include one or more of speaker 652 and display 654.
- Each of input device (s) 630 and output device (s) 650 may be integral to computing device 602 (e.g., built into a housing of computing device 602) or external to computing device 602 (e.g., communicatively coupled wired or wirelessly to computing device 602 via wired interface (s) 680 and/or wireless modem (s) 660) .
- Further input devices 630 can include a Natural User Interface (NUI) , a pointing device (computer mouse) , a joystick, a video game controller, a scanner, a touch pad, a stylus pen, a voice recognition system to receive voice input, a gesture recognition system to receive gesture input, or the like.
- NUI Natural User Interface
- Other possible output devices can include piezoelectric or other haptic output devices. Some devices can serve more than one input/output function.
- display 654 may display information, as well as operating as touch screen 632 by receiving user commands and/or other information (e.g., by touch, finger gestures, virtual keyboard, etc. ) as a user interface. Any number of each type of input device (s) 630 and output device (s) 650 may be present, including multiple microphones 634, multiple cameras 636, multiple speakers 652, and/or multiple displays 654.
- One or more wireless modems 660 can be coupled to antenna (s) (not shown) of computing device 602 and can support two-way communications between processor 610 and devices external to computing device 602 through network 604, as would be understood to persons skilled in the relevant art (s) .
- Wireless modem 660 is shown generically and can include a cellular modem 666 for communicating with one or more cellular networks, such as a GSM network for data and voice communications within a single cellular network, between cellular networks, or between the mobile device and a public switched telephone network (PSTN) .
- GSM Global System for Mobile communications
- PSTN public switched telephone network
- Wireless modem 660 may also or alternatively include other radio-based modem types, such as a Bluetooth modem 664 (also referred to as a “Bluetooth device” ) and/or Wi-Fi 662 modem (also referred to as an “wireless adaptor” ) .
- Wi-Fi modem 662 is configured to communicate with an access point or other remote Wi-Fi-capable device according to one or more of the wireless network protocols based on the IEEE (Institute of Electrical and Electronics Engineers) 802.11 family of standards, commonly used for local area networking of devices and Internet access.
- Bluetooth modem 664 is configured to communicate with another Bluetooth-capable device according to the Bluetooth short-range wireless technology standard (s) such as IEEE 802.15.1 and/or managed by the Bluetooth Special Interest Group (SIG) .
- s Bluetooth short-range wireless technology standard
- SIG Bluetooth Special Interest Group
- Computing device 602 can further include power supply 682, LI receiver 684, accelerometer 686, and/or one or more wired interfaces 680.
- Example wired interfaces 680 include a USB port, IEEE 1394 (FireWire) port, a RS-232 port, an HDMI (High-Definition Multimedia Interface) port (e.g., for connection to an external display) , a DisplayPort port (e.g., for connection to an external display) , an audio port, an Ethernet port, and/or an port, the purposes and functions of each of which are well known to persons skilled in the relevant art (s) .
- Wired interface (s) 680 of computing device 602 provide for wired connections between computing device 602 and network 604, or between computing device 602 and one or more devices/peripherals when such devices/peripherals are external to computing device 602 (e.g., a pointing device, display 654, speaker 652, camera 636, physical keyboard 638, etc. ) .
- Power supply 682 is configured to supply power to each of the components of computing device 602 and may receive power from a battery internal to computing device 602, and/or from a power cord plugged into a power port of computing device 602 (e.g., a USB port, an A/C power port) .
- LI receiver 684 may be used for location determination of computing device 602 and may include a satellite navigation receiver such as a Global Positioning System (GPS) receiver or may include other type of location determiner configured to determine location of computing device 602 based on received information (e.g., using cell tower triangulation, etc. ) .
- Accelerometer 686 may be present to determine an orientation of computing device 602.
- computing device 602 may also include one or more of a gyroscope, barometer, proximity sensor, ambient light sensor, digital compass, etc.
- Processor 610 and memory 656 may be co-located in a same semiconductor device package, such as being included together in an integrated circuit chip, FPGA, or system-on-chip (SOC) , optionally along with further components of computing device 602.
- computing device 602 is configured to implement any of the above-described features of flowcharts herein.
- Computer program logic for performing any of the operations, steps, and/or functions described herein may be stored in storage 620 and executed by processor 610.
- server infrastructure 670 may be present in computing environment 600 and may be communicatively coupled with computing device 602 via network 604.
- Server infrastructure 670 when present, may be a network-accessible server set (e.g., a cloud-based environment or platform) .
- server infrastructure 670 includes clusters 672.
- Each of clusters 672 may comprise a group of one or more compute nodes and/or a group of one or more storage nodes.
- cluster 672 includes nodes 674.
- Each of nodes 674 are accessible via network 604 (e.g., in a “cloud-based” embodiment) to build, deploy, and manage applications and services.
- nodes 674 may be a storage node that comprises a plurality of physical storage disks, SSDs, and/or other physical storage devices that are accessible via network 604 and are configured to store data associated with the applications and services managed by nodes 674. For example, as shown in FIG. 6, nodes 674 may store application data 678.
- Each of nodes 674 may, as a compute node, comprise one or more server computers, server systems, and/or computing devices.
- a node 674 may include one or more of the components of computing device 602 disclosed herein.
- Each of nodes 674 may be configured to execute one or more software applications (or “applications” ) and/or services and/or manage hardware resources (e.g., processors, memory, etc. ) , which may be utilized by users (e.g., customers) of the network-accessible server set.
- nodes 674 may operate application programs 676.
- a node of nodes 674 may operate or comprise one or more virtual machines, with each virtual machine emulating a system architecture (e.g., an operating system) , in an isolated manner, upon which applications such as application programs 676 may be executed.
- system architecture e.g., an operating system
- one or more of clusters 672 may be co-located (e.g., housed in one or more nearby buildings with associated components such as backup power supplies, redundant data communications, environmental controls, etc. ) to form a datacenter, or may be arranged in other manners. Accordingly, in an embodiment, one or more of clusters 672 may be a datacenter in a distributed collection of datacenters.
- exemplary computing environment 600 comprises part of a cloud-based platform such as Amazon Web of Amazon Web Services, Inc. or Google Cloud Platform TM of Google LLC, although these are only examples and are not intended to be limiting.
- computing device 602 may access application programs 676 for execution in any manner, such as by a client application and/or a browser at computing device 602.
- Example browsers include Microsoft by Microsoft Corp. of Redmond, Washington, Mozilla by Mozilla Corp. of Mountain View, California, by Apple Inc. of Cupertino, California, and Chrome by Google LLC of Mountain View, California.
- computing device 602 may additionally and/or alternatively synchronize copies of application programs 614 and/or application data 616 to be stored at network-based server infrastructure 670 as application programs 676 and/or application data 678.
- operating system 612 and/or application programs 614 may include a file hosting service client, such as by Microsoft Corporation, Amazon Simple Storage Service (Amazon S3) by Amazon Web Services, Inc., by Dropbox, Inc., Google Drive TM by Google LLC, etc., configured to synchronize applications and/or data stored in storage 620 at network-based server infrastructure 670.
- a file hosting service client such as by Microsoft Corporation, Amazon Simple Storage Service (Amazon S3) by Amazon Web Services, Inc., by Dropbox, Inc., Google Drive TM by Google LLC, etc.
- on-premises servers 692 may be present in computing environment 600 and may be communicatively coupled with computing device 602 via network 604.
- On-premises servers 692 when present, are hosted within an organization’s infrastructure and, in many cases, physically onsite of a facility of that organization.
- On-premises servers 692 are controlled, administered, and maintained by IT (Information Technology) personnel of the organization or an IT partner to the organization.
- Application data 698 may be shared by on-premises servers 692 between computing devices of the organization, including computing device 602 (when part of an organization) through a local network of the organization, and/or through further networks accessible to the organization (including the Internet) .
- on-premises servers 692 may serve applications such as application programs 696 to the computing devices of the organization, including computing device 602.
- on-premises servers 692 may include storage 694 (which includes one or more physical storage devices such as storage disks and/or SSDs) for storage of application programs 696 and application data 698 and may include one or more processors for execution of application programs 696.
- computing device 602 may be configured to synchronize copies of application programs 614 and/or application data 616 for backup storage at on-premises servers 692 as application programs 696 and/or application data 698.
- Embodiments described herein may be implemented in one or more of computing device 602, network-based server infrastructure 670, and on-premises servers 692.
- computing device 602 may be used to implement systems, clients, or devices, or components/subcomponents thereof, disclosed elsewhere herein.
- a combination of computing device 602, network-based server infrastructure 670, and/or on-premises servers 692 may be used to implement the systems, clients, or devices, or components/subcomponents thereof, disclosed elsewhere herein.
- computer program medium As used herein, the terms “computer program medium, ” “computer-readable medium, ” and “computer-readable storage medium, ” etc., are used to refer to physical hardware media. Examples of such physical hardware media include any hard disk, optical disk, SSD, other physical hardware media such as RAMs, ROMs, flash memory, digital video disks, zip disks, MEMs (microelectronic machine) memory, nanotechnology-based storage devices, and further types of physical/tangible hardware storage media of storage 620. Such computer-readable media and/or storage media are distinguished from and non-overlapping with communication media and propagating signals (do not include communication media and propagating signals) . Communication media embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave.
- a modulated data signal such as a carrier wave.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media includes wireless media such as acoustic, RF, infrared and other wireless media, as well as wired media.
- Embodiments are also directed to such communication media that are separate and non-overlapping with embodiments directed to computer-readable storage media.
- computer programs and modules may be stored in storage 620. Such computer programs may also be received via wired interface (s) 680 and/or wireless modem (s) 660 over network 604. Such computer programs, when executed or loaded by an application, enable computing device 602 to implement features of embodiments discussed herein. Accordingly, such computer programs represent controllers of the computing device 602.
- Embodiments are also directed to computer program products comprising computer code or instructions stored on any computer-readable medium or computer-readable storage medium.
- Such computer program products include the physical storage of storage 620 as well as further physical storage types.
- a (e.g., mobile) computing device may include a temperature estimator configured to estimate (e.g., predict based on a thermal model) an ambient temperature outside the computing device as a difference between a first sum and a second sum.
- the first sum may comprise, for example, one or more of a first temperature in the computing device (e.g., a temperature of a power supply, such as a battery) and a rate of change of a second temperature in the computing device.
- the second sum may comprise, for example, one or more of a computing device workload (e.g., system, CPU and/or GPU power consumption) ; and/or a difference between a third temperature in the computing device (e.g., internal air temperature near a power supply, such as in a space between the power supply and a chassis of the computing device) and the ambient temperature.
- a computing device workload e.g., system, CPU and/or GPU power consumption
- a third temperature in the computing device e.g., internal air temperature near a power supply, such as in a space between the power supply and a chassis of the computing device
- the first sum may (e.g., further) comprise heat dissipation by the computing device (e.g., passive dissipation, such as conduction, and/or active dissipation, such as a fan) .
- the computing device e.g., passive dissipation, such as conduction, and/or active dissipation, such as a fan
- the heat dissipation may be based, at least in part, on active heat dissipation.
- active heat dissipation may be based on or indicated by fan speed.
- the workload of the computing device may be based, at least in part, on, power consumption by a processor.
- the first temperature in the computing device may be the same as or different from the second temperature in the computing device.
- the first and/or second temperatures in the computing device may comprise a temperature of a first component in the computing device (e.g., for a power supply, such as a battery in a portable device) .
- the rate of change of the second temperature in the computing device may comprise a rate of change of the temperature of a component in the computing device (e.g., for a power supply, such as a battery in a portable device) .
- At least one of the first temperature in the computing device, the rate of change of a second temperature in the computing device, the workload of the computing device, and/or the difference between a third temperature in the computing device and the ambient temperature may be weighted. Weights may be determined, for example, by empirical test data.
- a computing device may be a fixed location device or a mobile device.
- a computing device may (e.g., further) comprise a controller configured to dynamically adjust one or more operating parameters of the computing device, (e.g., thermal and/or acoustic thresholds or operation of one or more components in the computing device) based, at least in part, on the ambient temperature.
- one or more operating parameters of the computing device e.g., thermal and/or acoustic thresholds or operation of one or more components in the computing device
- a computing device may (e.g., further) comprise a transmitter configured to transmit an indication of the ambient temperature (e.g., a control signal) to a second device external to the computing device (e.g., a WiFi thermostat) to control operation of the second device or a third device external to the computing device (e.g., an HVAC system) based, at least in part, on the ambient temperature.
- a second device external to the computing device e.g., a WiFi thermostat
- a third device external to the computing device e.g., an HVAC system
- a computer-implemented method may comprise estimating ambient temperature outside a computing device as a difference between a first sum and a second sum.
- the first sum may comprise a first temperature in the computing device (e.g., a temperature of a power supply, such as a battery, a temperature of a motherboard, and so on) ; a rate of change of a second temperature in the computing device; and a heat dissipation by the computing device (e.g., passive dissipation, such as conduction, and/or active dissipation, such as a fan operating at a selected speed) .
- the second sum may comprises a workload of the computing device (e.g., system, CPU and/or GPU power consumption) and a difference between a third temperature in the computing device (e.g., internal air temperature near a power supply, such as in a space between the power supply and a chassis of the computing device) and the ambient temperature.
- a workload of the computing device e.g., system, CPU and/or GPU power consumption
- a third temperature in the computing device e.g., internal air temperature near a power supply, such as in a space between the power supply and a chassis of the computing device
- the first temperature in the computing device may be the same as the second temperature in the computing device.
- the heat dissipation may be based on active heat dissipation and/or passive heat dissipation.
- the first and second temperatures may be based on a power supply temperature.
- the third temperature may be based on a temperature in a space between the power supply and a chassis of the computing device.
- the active heat dissipation may be based, at least in part, on a fan speed.
- the workload of the computing device may be based, at least in part, on power consumption by a processor.
- a method may (e.g., further) comprise dynamically adjusting one or more operating parameters of the computing device (e.g., dynamically adjust thermal and/or acoustic thresholds or operation of one or more components in the computing device) based, at least in part, on the ambient temperature.
- dynamically adjusting one or more operating parameters of the computing device e.g., dynamically adjust thermal and/or acoustic thresholds or operation of one or more components in the computing device
- a computer-readable storage medium may have program instructions recorded thereon that, when executed by a processing circuit, perform a method.
- the method may comprise estimating ambient temperature outside a computing device as a difference between a first sum and a second sum.
- the first sum may comprise a first temperature in the computing device (e.g., a temperature of a power supply, such as a battery, a temperature of a motherboard, and so on) , a rate of change of a second temperature in the computing device, and a heat dissipation by the computing device (e.g., passive dissipation, such as conduction, and/or active dissipation, such as a fan operating at a selected speed) .
- a first temperature in the computing device e.g., a temperature of a power supply, such as a battery, a temperature of a motherboard, and so on
- a rate of change of a second temperature in the computing device e.g., a rate of change of a second temperature in
- the second sum may comprises a workload of the computing device (e.g., system, CPU and/or GPU power consumption) and a difference between a third temperature in the computing device (e.g., internal air temperature near a power supply, e.g. in a space between the power supply and a chassis of the computing device) and the ambient temperature.
- the method may comprise dynamically adjusting one or more operating parameters of the computing device based, at least in part, on the ambient temperature; and/or transmitting the ambient temperature or a control signal to a second device external to the computing device to control operation of the second device or a third device external to the computing device based, at least in part, on the ambient temperature.
- the first temperature in the computing device may be the same as the second temperature in the computing device.
- the first and second temperatures may be based on a power supply temperature.
- the third temperature may be based on a temperature in a space between the power supply and a chassis of the computing device.
- the heat dissipation may be based, at least in part, on a fan speed.
- the workload of the computing device may be based, at least in part, on power consumption by a processor.
- the device may measure factors associated with operation of internal parts of the computing device, such as by measuring rotational speed of cooling fan, power consumed by processing unit (CPU) and battery temperature.
- the device may estimate the ambient temperature by using the measured factors in a model (e.g., a formula or algorithm) .
- the model may be related to an estimate of heat dissipation by the computing device.
- Parameters used in the model may be determined by fitting (e.g., parameter fitting) the collected factors (e.g., battery temperature data “B, ” CPU power “C, ” fan speed “F, ” and ground-truth ambient temperature “T” ) as training data to the model.
- T est B- ⁇ T+ ( (1/ ⁇ ) *dB/dt) - ( ( ⁇ / ⁇ ) *C) + ( ( ⁇ / ⁇ ) *F)
- ambient temperature based on the determined parameters and (e.g., real-time or live) measured factors.
- the computing device may use the estimated ambient temperature to control operation of one or more components in the device, for example, by adjusting acoustic and/or power thresholds to avoid throttling at high ambient temperatures, e.g., while satisfying ergonomic and/or safety rules.
- adjectives such as “substantially” and “about” modifying a condition or relationship characteristic of a feature or features of an example embodiment of the disclosure are understood to mean that the condition or characteristic is defined to within tolerances that are acceptable for operation of the embodiment for an application for which it is intended.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
Description
Claims (20)
- A computing device comprising:a temperature estimator configured to determine an ambient temperature outside the computing device as a difference between a first sum and a second sum;wherein the first sum comprises:a first temperature in the computing device; anda rate of change of a second temperature in the computing device; andwherein the second sum comprises:a workload of the computing device; anda difference between a third temperature in the computing device and the ambient temperature.
- The computing device of claim 1, wherein the first sum further comprises: a heat dissipation by the computing device.
- The computing device of claim 2, wherein the heat dissipation is based, at least in part, on an active heat dissipation.
- The computing device of claim 3, wherein the active heat dissipation is based, at least in part, on a fan speed.
- The computing device of claim 1, wherein the workload of the computing device is based, at least in part on, power consumption by a processor.
- The computing device of claim 1, wherein the first temperature in the computing device is the same as the second temperature in the computing device.
- The computing device of claim 6, wherein the first and second temperatures in the computing device comprise a temperature of a first component in the computing device.
- The computing device of claim 1, wherein the rate of change of the second temperature in the computing device comprises a rate of change of the temperature of a first component in the computing device.
- The computing device of claim 1, wherein at least one of the first temperature in the computing device, the rate of change of the second temperature in the computing device, the workload of the computing device, or the difference between the third temperature in the computing device and the ambient temperature is weighted.
- The computing device of claim 1, wherein the computing device comprises a mobile device.
- The computing device of claim 1, further comprising:a controller configured to dynamically adjust one or more operating parameters of the computing device based, at least in part, on the ambient temperature.
- The computing device of claim 1, further comprising:a transmitter configured to transmit an indication of the ambient temperature to a second device device external to the computing device to control operation of the second device or a third device external to the computing device based, at least in part, on the ambient temperature.
- A computer-implemented method comprising:estimating ambient temperature outside a computing device as a difference between a first sum and a second sum;wherein the first sum comprises:a first temperature in the computing device;a rate of change of a second temperature in the computing device; anda heat dissipation by the computing device; andwherein the second sum comprises:a workload of the computing device; anda difference between a third temperature in the computing device and the ambient temperature.
- The computer-implemented method of claim 13, wherein the first temperature in the computing device is the same as the second temperature in the computing device.
- The computer-implemented method of claim 13, wherein the heat dissipation is based on active heat dissipation and passive heat dissipation.
- The computer-implemented method of claim 15, wherein the first and second temperatures are based on a power supply temperature, wherein the third temperature is based on a temperature in a space between the power supply and a chassis of the computing device, wherein the active heat dissipation is based, at least in part, on a fan speed, and wherein the workload of the computing device is based, at least in part, on power consumption by a processor.
- The computer-implemented method of claim 13, further comprising:dynamically adjusting one or more operating parameters of the computing device based, at least in part, on the ambient temperature.
- A computer-readable storage medium having program instructions recorded thereon that, when executed by a processing circuit, perform a method comprising:estimating ambient temperature outside a computing device as a difference between a first sum and a second sum;wherein the first sum comprises:a first temperature in the computing device;a rate of change of a second temperature in the computing device; anda heat dissipation by the computing device; andwherein the second sum comprises:a workload of the computing device; anda difference between a third temperature in the computing device andthe ambient temperature; anddynamically adjusting one or more operating parameters of the computing device based, at least in part, on the ambient temperature; ortransmitting the ambient temperature or a control signal to a second device device external to the computing device to control operation of the second device or a third device external to the computing device based, at least in part, on the ambient temperature.
- The computer-readable storage medium of claim 18, wherein the first temperature in the computing device is the same as the second temperature in the computing device.
- The computer-readable storage medium of claim 19, wherein the first and second temperatures are based on a power supply temperature, wherein the third temperature is based on a temperature in a space between the power supply and a chassis of the computing device, wherein the heat dissipation is based, at least in part, on a fan speed, and wherein the workload of the computing device is based, at least in part, on power consumption by a processor.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP22809322.5A EP4616270A1 (en) | 2022-11-10 | 2022-11-10 | Ambient temperature estimation and device optimization |
| PCT/CN2022/131031 WO2024098313A1 (en) | 2022-11-10 | 2022-11-10 | Ambient temperature estimation and device optimization |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2022/131031 WO2024098313A1 (en) | 2022-11-10 | 2022-11-10 | Ambient temperature estimation and device optimization |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024098313A1 true WO2024098313A1 (en) | 2024-05-16 |
Family
ID=84361065
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/131031 Ceased WO2024098313A1 (en) | 2022-11-10 | 2022-11-10 | Ambient temperature estimation and device optimization |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP4616270A1 (en) |
| WO (1) | WO2024098313A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080028778A1 (en) * | 2006-08-04 | 2008-02-07 | Timothy John Millet | Method and apparatus for a thermal control system based on virtual temperature sensor |
| US20170138628A1 (en) * | 2015-11-12 | 2017-05-18 | Oracle International Corporation | Determining parameters of air-cooling mechanisms |
| US20170318707A1 (en) * | 2016-04-29 | 2017-11-02 | Dell Products L.P. | Systems and methods for dynamically updated thermal options based on thermal state |
| EP3367209A2 (en) * | 2017-02-24 | 2018-08-29 | MediaTek Inc. | Method and apparatus for surface and ambient temperature estimation for portable devices |
| US20210263773A1 (en) * | 2020-02-21 | 2021-08-26 | International Business Machines Corporation | Leveraging thermal profiles of processing tasks to dynamically schedule execution of the processing tasks |
-
2022
- 2022-11-10 WO PCT/CN2022/131031 patent/WO2024098313A1/en not_active Ceased
- 2022-11-10 EP EP22809322.5A patent/EP4616270A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080028778A1 (en) * | 2006-08-04 | 2008-02-07 | Timothy John Millet | Method and apparatus for a thermal control system based on virtual temperature sensor |
| US20170138628A1 (en) * | 2015-11-12 | 2017-05-18 | Oracle International Corporation | Determining parameters of air-cooling mechanisms |
| US20170318707A1 (en) * | 2016-04-29 | 2017-11-02 | Dell Products L.P. | Systems and methods for dynamically updated thermal options based on thermal state |
| EP3367209A2 (en) * | 2017-02-24 | 2018-08-29 | MediaTek Inc. | Method and apparatus for surface and ambient temperature estimation for portable devices |
| US20210263773A1 (en) * | 2020-02-21 | 2021-08-26 | International Business Machines Corporation | Leveraging thermal profiles of processing tasks to dynamically schedule execution of the processing tasks |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4616270A1 (en) | 2025-09-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11231760B1 (en) | Techniques for accurately determining the temperature at various locations of an operating integrated circuit | |
| US20220404888A1 (en) | Power budget management using quality of service (qos) | |
| JP7654005B2 (en) | Pattern Recognition Enabled Autonomous Configuration Optimization for Data Centers | |
| US11720464B1 (en) | System and method for reduction of data transmission by threshold adaptation | |
| CN107085462A (en) | For managing the electronic equipment of electric power and controlling its method | |
| US20140195178A1 (en) | Estimating component power usage from aggregate power usage | |
| US20240219990A1 (en) | Presence detection power efficiency improvements | |
| US11205018B2 (en) | Device identification via chip manufacturing related fingerprints | |
| KR20160050003A (en) | Computing system with thermal mechanism and method of operation thereof | |
| US12204950B2 (en) | System and method for workload management in a distributed system | |
| WO2013067093A1 (en) | Minimizing aggregate cooling and leakage power with fast convergence | |
| US20120330586A1 (en) | Estimating component power usage from aggregate power usage | |
| US11844188B2 (en) | Distribution of available power to devices in a group | |
| WO2024098313A1 (en) | Ambient temperature estimation and device optimization | |
| US20240362144A1 (en) | System and method for monitoring data processing system performance using a digital twin | |
| US12457714B2 (en) | Fan speed control for high tonality avoidance | |
| US11669429B2 (en) | Configuration cluster-based performance optimization of applications in an information handling system (IHS) | |
| CN114764353A (en) | ML to ML orchestration system and method for Information Handling System (IHS) full system optimization | |
| US11991240B2 (en) | System and method for reduction of data transmission by inference model optimization | |
| US12216854B2 (en) | Online tuning of a touch device processing algorithm | |
| US20240365174A1 (en) | System and method for managing methods of communication between data processing systems using a digital twin | |
| US20230419135A1 (en) | System and method for reduction of data transmission by optimization of inference accuracy thresholds | |
| US20250245062A1 (en) | Service scaling based on service dependencies | |
| US20250126018A1 (en) | Container based limit enforcement | |
| US12105966B1 (en) | System and method for managing power consumption in deployments |
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: 22809322 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2022809322 Country of ref document: EP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2022809322 Country of ref document: EP Effective date: 20250610 |
|
| WWP | Wipo information: published in national office |
Ref document number: 2022809322 Country of ref document: EP |