Thermal management on Android phone

(By Zhenhua Huang 15582926 & Xu Hu 14875733)
Introduction
Thermal Management is the ability to control the temperature of a system by means of Technology based on Thermodynamics and Heat Transfer. When the phone is working, it will generate excess heat, usually the amount of heat output is equal the power input. However, if the phone runs too hot, it will impact the life of components or even threats user safety. So the thermal management is a compulsory component on phones. It is based on the hardware sensors integrated inside the main processor chipset and external sensors on the surface of the electronic board. Technically, thermal management is a typical ubiquitous computing system based on temperature sensors. A thermal management server is running in the kernel side to manipulate the CPU/GPU frequencies, the amount of online cores, charging currents etc based on the real-time sensor input. Thermal management is to manage:
* Silicon junction temperature limits.
* Memory case temperature limits.
* External surface temperature limits.
Development of Thermal Management
In 1995, a typical thermal design engineer was aware that removing heat was not going to get any easier in the next few years. A look back at the past ten years reveals that thermal management remained a challenging field. Fortunately, developments and improvements in thermal management hardware have assisted the electronics packaging community by enabling higher heat fluxes in ever-smaller packaging volumes. In almost every packaging design, the cost of the thermal management hardware must be small compared to the overall system cost. The growth of commercial electronics since 1995, coupled with the need for better cooling, has enabled some thermal management technologies to move from expensive aerospace technologies to costs that are viable for commercial packaging.
Methodology
Today, users request more from their mobile phones including seamless 3G/4G broadband connectivity and leading features such as high-end digital camera functions and HD audio, but their priority requested feature is still longer battery life. The major challenge is that delivering the horsepower required to achieve the users’ requirement from their smartphone, because these devices are some of the most power- and thermally-constrained devices around. This needs a mobile-centric approach that ensures the optimal balance of performance and power.This method is totally different from the PC-centric approach. In the PC-centric approach, the central processing unit (CPU) is just responsible for the vast majority of processing tasks, the fan and heat skin are just used for thermal diffusion, and the device has a constant connection to a power source. Qualcomm Technologies presented that taking a holistic approach to power management across the system, moving away from a CPU-centric model, is the only way to achieve low power consumption and thermal efficiency in mobile.
Sensors on MSM8996
Sensors are the input source for the policy and management layer high level. Normally, in a System on Chip(SoC), the sensors are placed closed to the hot spots of the silicon die. For example, Qualcomm’s Snapdragon 810(MSM8994), has 16 on-die sensors to report the temperature of CPU/GPU cores. Other than this, a number of additional sensors (thermistors) could be placed on the PCB, near power amplifiers or power supply chipsets. These sensors increases capability to identify and target thermal problems. And the on-die sensor’s accuracy could approach to less than 1.5°C. The sampling rate could reach to 3.5 ms for more responsive thermal actions.
Thermal management on Android phone
In the section, it will introduce the thermal engine on the Android phone based on Qualcomm’s platform. Thermal engine is a Linux process launched after kernel is boot successfully. Then it will load the thermal configured file, decode the parameters and overwrite the setting by default. If the thermal configuration file is missing, the hard code parameters will take place.
Thermal engine could be considered as arbitration module. It receives the temperature report from the on-die sensors and external customized sensors. Then comparing the temperature with the configuration cells. If one component has exceeded the threshold, it will take place the relevant actions. Such as step down the CPU core frequency or even shutdown an CPU core. After the temperature return back to normal range, the CPU core’s online status and frequency will be recovered.
It could be seen that, the principle of thermal management is to limit the heat source’s power consumption. High frequency stands for high power consumption, high consumption cause high temperature. If the heat could not be spread out efficient, it could be accumulated than the phone will be extremely hot, which could cause very worse user experience.
As the thermal engine on MSM8996 platform, user could tuning the thermal management behavior via modifying the parameters in the thermal configuration file with root level privilege. There are two algorithms in this configuration file: Single Step and Monitor.
Parameters which are supported for adjustment are
For SS algorithm:
Sampling: For changing algorithm sampling rate
disable: For disable/enable a particular config instance
set_point: For changing set_point of an instance
set_point_clr: For changing set_point_clr of an instance
For Monitor algorithm
sampling: For changing sensor sampling rate(if it polling type)
disable: For disable/enable a particular config instance
thresholds: For changing different level thresholds
thresholds_clr: For changing different level thresholds_clr
action_info: For changing different level action_info values
Though thermal engine could manage the temperature as software strategy, it sacrifices the performance of the processors obvious. The efficiency of thermal management depends on the PCB design and the constructor design. Since each mobile phones vendors have their unique design instances. The default configuration file might be not appropriate for all the cases. So this configuration method is transparent to customer and they can tuning the parameters by their own concerns.
Since the thermal engine only takes the parameters after booting, use needs to stop the thermal engine first, input the new configuration file then start thermal engine service again by manual.
adb shell stop thermal-engine
adb shell start thermal-engine
Conclusion
To resolve the increasing challenge of delivering higher performance in devices with power and thermal constraints, a high efficient thermal management approach is crucial. This page introduced a holistic system approach to thermal management. By designing specialized processing engines, smartly integrating algorithm, and optimizing both the system software and across the device, mobile SoCs deliver the optimal balance of power and thermal efficiency, supporting mobile devices to achieve the best user experience and greatest performance.
Reference
Thermal Debugging Guide. Retrieved from https://developer.qualcomm.com/qfile/28825/lm80-p0436-8_thermal_debugging_guide.pdf
Designing Mobile Devices for Low Power and Thermal Efficiency. Retrieved from https://www.qualcomm.com/media/documents/files/designing-mobile-devices-for-low-power-and-thermal-efficiency.pdf
CPU frequency and voltage scaling code in the Linux(TM) kernel. Retrieved from https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt
Kim, J. M., Kim, Y. G., & Chung, S. W. (2015). Stabilizing CPU Frequency and Voltage for Temperature-Aware DVFS in Mobile Devices. IEEE Transactions On Computers, 64(1), 286. doi:10.1109/TC.2013.188
Singla, G., Kaur, G., Unver, A. K., & Ogras, U. Y. (2015). Predictive dynamic thermal and power management for heterogeneous mobile platforms. 2015 Design, Automation & Test In Europe Conference & Exhibition (DATE), 960.
 
< Prev   Next >