Dynamic frames per second (FPS)-temperature thermal management
The thermal controller on SoCs dynamically adjusts FPS and CPU/GPU frequencies based on temperature and workload to address thermal management inefficiencies, stabilizing performance and enhancing user experience in gaming applications.
Patent Information
- Application Number
- PCT/CN2024/096577
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-05-31
- Publication Date
- 2025-12-04
AI Technical Summary
Current thermal management systems in mobile devices, such as SoCs, fail to effectively mitigate temperature increases during high-performance applications like gaming, leading to inconsistent game frames per second (FPS) and a poor user experience due to delayed or inappropriate throttling of CPU and GPU frequencies.
A thermal controller on the SoC dynamically adjusts the target FPS based on temperature changes, calculating a difference between target and current FPS to implement proportional-integral-derivative (PID) controlled frequency throttling, distributing the throttling amount based on CPU/GPU load ratios to stabilize FPS and manage thermal headroom.
This approach stabilizes FPS and improves thermal management by dynamically adjusting CPU and GPU frequencies, ensuring sustainable performance and a consistent gaming experience across various workload scenarios.
Smart Images

Figure CN2024096577_04122025_PF_FP_ABST
Abstract
Description
DYNAMIC FRAMES PER SECOND (FPS) -TEMPERATURE THERMAL MANAGEMENTTECHNICAL FIELD
[0001] The technology discussed below relates generally to thermal management of a system-on-chip (SoC) , and more particularly, to dynamic thermal management based on a combination of temperature and frames per second (FPS) .
[0002] INTRODUCTION
[0003] System-on-chip (SoC) technology has emerged as a key component in mobile devices. SoC technology integrates multiple electronic control units (ECUs) (e.g., central processing units (CPUs) , graphic processing units (GPUs) , neural signal processors (NSPs) , digital signal processors (DSPs) , Double Data Rate Synchronous Dynamic Random-Access Memory (DDR SDRAM) , hardware accelerators, fixed function accelerators, etc. ) onto a single chip. SoCs can reduce the overall system size and cost as all components are on the same chip and internally connected.
[0004] Mobile devices typically include a thermal framework that monitors the temperature of the mobile device and implements thermal mitigation actions when the thermal limit is exceeded to mitigate the effects of high temperatures on the mobile device. For example, high temperatures within a mobile device may affect the structural integrity or performance of components (e.g., ECUs on an SoC) . Thermal mitigation actions may include, for example, clock or frequency throttling of one or more ECUs on an SoC.
[0005] BRIEF SUMMARY OF SOME EXAMPLES
[0006] The following presents a summary of one or more aspects of the present disclosure, in order to provide a basic understanding of such aspects. This summary is not an extensive overview of all contemplated features of the disclosure, and is intended neither to identify key or critical elements of all aspects of the disclosure nor to delineate the scope of any or all aspects of the disclosure. Its sole purpose is to present some concepts of one or more aspects of the disclosure in a form as a prelude to the more detailed description that is presented later.
[0007] In one example, an apparatus is provided including a plurality of electronic control units (ECUs) on a system-on-chip (SoC) and a thermal controller configured to calculate a target frames per second (FPS) of an application running on the apparatus based on a change in temperature of the apparatus. The thermal controller is further configured to calculate a first FPS difference between the target FPS and a current FPS and to apply at least one first thermal mitigation action to at least one electronic control unit (ECU) on the SoC based on the first FPS difference.
[0008] Another example provides a method of thermal mitigation on a system-on-chip (SoC) of a device. The method includes calculating a target frames per second (FPS) of an application running on the device based on a change in temperature of the device, calculating a first FPS difference between the target FPS and a current FPS, and applying at least one first thermal mitigation action to at least one electronic control unit (ECU) on the SoC based on the first FPS difference.
[0009] Another example provides a system-on-chip of a device including means for calculating a target frames per second (FPS) of an application running on the device based on a change in temperature of the device, means for calculating a first FPS difference between the target FPS and a current FPS, and means for applying at least one first thermal mitigation action to at least one electronic control unit (ECU) on the SoC based on the first FPS difference.
[0010] These and other aspects will become more fully understood upon a review of the detailed description, which follows. Other aspects, features, and examples will become apparent to those of ordinary skill in the art upon reviewing the following description of specific exemplary aspects in conjunction with the accompanying figures. While features may be discussed relative to certain examples and figures below, all examples can include one or more of the features discussed herein. In other words, while one or more examples may be discussed as having certain features, one or more of such features may also be used in accordance with the various examples discussed herein. Similarly, while examples may be discussed below as device, system, or method examples, it should be understood that such examples can be implemented in various devices, systems, and methods.BRIEF DESCRIPTION OF THE DRAWINGS
[0011] FIG. 1 is a diagram depicting an apparatus employing a system-on-chip (SoC) according to some aspects.
[0012] FIG. 2 is a diagram depicting an exemplary system-on-chip (SoC) according to some aspects.
[0013] FIG. 3 is a diagram illustrating an example of a thermal framework for an SoC of an apparatus according to some aspects.
[0014] FIG. 4 is a diagram illustrating an example of a thermal controller according to some aspects.
[0015] FIGs. 5-8 illustrate an example closed-loop thermal mitigation scheme according to some aspects.
[0016] FIG. 9 is a diagram illustrating an exemplary architecture of the thermal mitigation scheme according to some aspects.
[0017] FIG. 10 is a chart illustrating an exemplary device thermal power envelope according to some aspects.
[0018] FIG. 11 is a diagram illustrating an exemplary process flow for thermal mitigation of an SoC of a device according to some aspects.
[0019] FIG. 12 is a flow chart illustrating another exemplary process for thermal management of an SoC according to some aspects.
[0020] FIG. 13 is a flow chart illustrating another exemplary process for thermal management of an SoC according to some aspects.
[0021] FIG. 14 is a flow chart illustrating another exemplary process for thermal management of an SoC according to some aspects.DETAILED DESCRIPTION
[0022] The detailed description set forth below in connection with the appended drawings is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
[0023] Several aspects of the invention will now be presented with reference to various apparatus and methods. These apparatus and methods will be described in the following detailed description and illustrated in the accompanying drawings by various blocks, modules, components, circuits, steps, processes, algorithms, etc. (collectively referred to as “elements” ) . These elements may be implemented using electronic hardware, computer software, firmware, or any combination thereof. Whether such elements are implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system.
[0024] While aspects and examples are described in this application by illustration to some examples, those skilled in the art will understand that additional implementations and use cases may come about in many different arrangements and scenarios. Innovations described herein may be implemented across many differing platform types, devices, systems, shapes, sizes, and packaging arrangements. For example, aspects and / or uses may come about via integrated chip examples and other non-module-component-based devices (e.g., end-user devices, vehicles, communication devices, computing devices, industrial equipment, retail / purchasing devices, medical devices, artificial intelligence (AI) -enabled devices, etc. ) . While some examples may or may not be specifically directed to use cases or applications, a wide assortment of applicability of described innovations may occur. Implementations may range in spectrum from chip-level or modular components to non-modular, non-chip-level implementations and further to aggregate, distributed, or original equipment manufacturer (OEM) devices or systems incorporating one or more aspects of the described innovations. In some practical settings, devices incorporating described aspects and features may also necessarily include additional components and features for the implementation and practice of described examples. It is intended that innovations described herein may be practiced in a wide variety of devices, chip-level components, systems, distributed arrangements, end-user devices, etc., of varying sizes, shapes, and constitution.
[0025] An apparatus, such as a mobile device (e.g., user equipment (UE) , may include a system-on-chip (SoC) , which may include a plurality of electronic control units (ECU) (e.g., CPU, GPU, NSP, transceiver / modem, DSP, DDR, SDRAM, etc. ) . Thermal management is an important function of SoCs to manage the temperature variations throughout the system due to heat dissipation in high-power use cases, such as gaming. For example, a skin temperature of the apparatus may be measured (e.g., near an external surface of the apparatus) and compared to a thermal limit (e.g., a threshold) . When the skin temperature exceeds the thermal limit, one or more thermal mitigation actions (e.g., frequency or clock throttling) may be applied.
[0026] However, for heavily-loaded games running at high performance, thermal mitigation measures may not be triggered at the appropriate time due to the rapid increase in temperature. Moreover, current thermal mitigation policies typically suppress heating through throttling the CPU or GPU frequency under respective fixed values. This results in variations in the game frames per second (FPS) and overall quality, which impacts game sustainability and the user experience.
[0027] In various aspects of the disclosure, a thermal mitigation framework is provided that applies thermal mitigation actions to ECUs (e.g., CPU and / or GPU) based on both the temperature of the device and the frames per second (FPS) of an application (e.g., a gaming application) running on the device. For example, a thermal controller of an SoC on a device (e.g., a mobile device) may be configured to calculate a target frames per second (FPS) of an application (e.g., gaming application) running on the device based on a change in temperature of the device. The thermal controller is further configured to calculate a difference between the target FPS and a current FPS and to apply at least one thermal mitigation action to at least one electronic control unit (ECU) on the SoC based on the first FPS difference.
[0028] For example, the thermal controller may be configured to throttle the frequency of each of the CPU and GPU on the SoC based on a load ratio between the CPU and the GPU. In some examples, the thermal controller may include a proportional-integral-derivative (PID) controller configured to calculate a frequency throttling amount based on the difference between the target FPS and the current FPS. The thermal controller may further be configured to distribute the frequency throttling amount between the CPU and the GPU based on the load ratio therebetween.
[0029] In some examples, the thermal controller may calculate the change in temperature as a difference between an immediately prior stored temperature and a current temperature of the device. The change in temperature may then be integrated to produce an FPS thermal change. The target FPS may then be calculated as a difference between the FPS thermal change and a target thermal FPS. As such, the target FPS is inversely proportional to temperature changing trends. For example, as the temperature goes up, the target FPS goes down, and vice-versa.
[0030] The current temperature may then be stored as the immediately prior temperature and the target FPS may be updated based on a new current temperature. In addition, the updated target FPS may be compared to a new current FPS to calculate a new frequency throttling amount for distribution to the CPU and GPU in a closed-loop manner. For example, the new current FPS is determined based on the throttled frequenc (ies) of the CPU / GPU applied in the previous thermal mitigation step. As such, the thermal controller is configured to dynamically and indirectly throttle the CPU and GPU frequency through adjusting the FPS to mitigate the device thermals, which makes the FPS more stable and sustainable. In addition, such a closed-loop configuration is suitable for different types of games, regardless of whether those games are CPU-bound, GPU-bound, or both.
[0031] In some examples, the thermal controller may be configured to calculate the thermal headroom between the current temperature of the device and a thermal mitigation temperature and to initiate thermal mitigation through adjusting the FPS in response to the thermal headroom exceeding a threshold. For example, the threshold may correspond to a percentage difference from the thermal mitigation temperature. In this manner, thermal mitigation through FPS adjusting may be implemented prior to normal device thermal mitigation strategies to account for rapid increases in temperature in gaming applications.
[0032] FIG. 1 is a diagram depicting an apparatus employing a system-on-chip (SoC) according to some aspects. In one example, the apparatus 100 may include a radio communication device that communicates through a radio frequency (RF) communications transceiver 118 with a radio access network (RAN) , a core access network, the Internet and / or another network. The communications transceiver 118 may be embodied in, or operably coupled to a SoC 102 (the former being illustrated) . The SoC 102 may include one or more electronic control units (ECUs) , such as a CPU 104, NSP 106, and GPU (s) 108. In an example, the CPU 104 may include a processor 110 and memory 114 (e.g., L1 and / or L2 caches or registers or RAM) , and may be controlled by an operating system 112 that is loaded from internal or external storage as data and instructions that are executable by the processor 110. The SoC 102 may further include or access a local database 116, which may be implemented in the memory 114, for example, where the database 116 can be used to maintain operational parameters and other information used to configure and operate the apparatus 100. The local database 116 may be implemented as a set of registers, or may be implemented in a database module, flash memory, magnetic media, non-volatile or persistent storage, optical media, tape, soft or hard disk, or the like. The SoC 102 may also be operably coupled to internal and / or external devices such as an antenna 120, a display / user interface 124, operator controls, such as buttons 128, 130, and other components.
[0033] A data communication interface (e.g., bus) 122 may be provided to support communication between the ECUs 104, 106, 108, and / or one or more peripherals (not shown) . The data communication interface 122 may be operated in accordance with standard protocols defined for interconnecting certain components of mobile devices. For example, there may be multiple types of interfaces defined for communications between CPU 104, a user interface, and camera components of a mobile device.
[0034] FIG. 2 is a diagram depicting an exemplary system-on-chip (SoC) according to some aspects. The SoC 202 may be implemented on a device or apparatus configured to run gaming applications. For example, the device may correspond to a mobile phone, an extended reality (XR) device, a table computer, or other suitable mobile device capable of running one or more gaming applications.
[0035] The SoC 202 includes a processing system 220 that includes a plurality of heterogeneous electronic control units (ECUs) 204, such as CPUs, general-purpose processors, NSPs, GPUs, DDRs, modems, hardware accelerators, fixed function accelerators, image processors, display processors, secure processing units (SPUs) , network processors, and other suitable ECU devices. The ECUs 204, may therefore, include one or more processors / cores, and each processor / core may perform operations independent of the other processors / cores. As such, each of the ECUs 204 may be configured to execute instructions to perform respective workloads.
[0036] The ECUs 204 may be organized in close proximity to one another (e.g., on a single substrate, die, integrated chip, etc. ) so that they may operate at a much higher frequency / clock-rate than would be possible if the signals were to travel off-chip. The proximity of the processors / cores may also allow for the sharing of on-chip memory and resources (e.g., voltage rail) , as well as for more coordinated cooperation between processors / cores. In some examples, one or more of the ECUs 204 may include a cluster of ECUs of the same type. For example, an ECU 204 may include a cluster of multiple (e.g., two or more) CPU cores with rail-sharing among the CPU cores. As another example, an ECU 204 may include an NSP core with multiple (e.g., two or more) threads.
[0037] The processing system 220 is interconnected with one or more controllers 208, one or more input / output (I / O) module (s) 212, one or more memories 210, and one or more resource management unit (s) (RMUs) 214 via a bus 206, which may include an array of reconfigurable logic gates and / or implement a bus architecture (e.g., CoreConnect, advanced microcontroller bus architecture (AMBA) , etc. ) . The bus 206 communications may be provided by advanced interconnects, such as high performance networks on chip (NoCs) . The bus 206 may include or provide a bus mastering system configured to grant SoC components (e.g., processors, peripherals, etc. ) exclusive control of the bus (e.g., to transfer data in burst mode, block transfer mode, etc. ) for a set duration, number of operations, number of bytes, etc. The bus 206 may include a multi-level bus system including, for example, one or more aggregate NoCs serving a plurality of clients (e.g., a plurality of ECUs 204) , and one or more main NoCs serving the aggregate NoCs and one or more clients.
[0038] The controller 208 may be configured to manage the flow of data to and from the memory 210, an ECU memory 204, or a memory device located off-chip (e.g., a flash memory device) . In some examples, the memory 210 may include a universal flash storage (UFS) host device configured to receive various memory commands from multiple masters, and address and communicate the memory commands to a memory device. The multiple masters may include ECUs 204, and / or multiple applications running on one or more of the ECUs 204. The controller 208 may include one or more processors configured to perform operations disclosed herein. Examples of processors include microprocessors, microcontrollers, digital signal processors (DSPs) , field programmable gate arrays (FPGAs) , programmable logic devices (PLDs) , state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure.
[0039] In some examples, the controller 208 is an application processor that may be controlled by an operating system (e.g., a high-level operating system (HLOS) ) that is loaded from internal or external storage as data and instructions that are executable by the controller 208. In some examples, the controller 208 may further be configured to execute a hypervisor software application to provide a supervisory capability over several operating systems (OSs) , manage access to the ECUs 204, manage access to peripherals (e.g., via the I / O module 212) , and manage inter-OS communication and security.
[0040] The memory 210 may, for example, maintain software, operational parameters and other information used to configure and operate the SoC 202. The memory 210 may be implemented, for example, as a set of registers, or may be implemented in a database module, flash memory, magnetic media, non-volatile or persistent storage, optical media, a smart card, a flash memory device, a random access memory (RAM) , a read only memory (ROM) , a programmable ROM (PROM) , an erasable PROM (EPROM) , an electrically erasable PROM (EEPROM) , and / or any other suitable medium for storing software and / or instructions that may be accessed and read by the controller 208 and / or ECUs 204. For example, the software and / or instructions may be associated with one or more gaming applications. In some examples, the memory 210 may include a cache memory to provide temporary storage of information to enhance the processing speed of the SoC 202.
[0041] The SoC may also be coupled to internal and / or external devices, such as a display, camera, operator controls (e.g., buttons and a keypad) , cooling unit, navigation system, external memory device, and / or other peripheral devices and components via the input / output module 212. For example, the I / O module 212 may include an input / output interface (e.g., a bus architecture or interconnect) or a hardware design for performing I / O operations.
[0042] The RMU 214 is configured to manage voltages (e.g., retention, nominal, or off) on one or more core logic voltage rails (e.g., voltage rails configured to provide power to one or more ECUs 204 of the processing system 220 and the bus 206) and memory voltage rails (e.g., power rails configured to provide power to the controller 208 and the memory 210) . The RMU 214 may also be configured to manage one or more clock sources configured to generate clock signals for one or more ECUs 204 of the processing system 220 and the bus 206. As such, the RMU 214 may be configured to manage components such as voltage rails, voltage regulators, oscillators, phase-locked loops, peripheral bridges, data controllers, system controllers, access ports, timers, and other similar components used to support the processors and software clients running on the SoC 202, or external to the SoC 202. The RMU 214 may be implemented by a combination of hardware and firmware. In some examples, the RMU 214 can be off-chip and external to the SoC 202.
[0043] In various aspects of the disclosure, the RMU 214 may be configured to operate together with the controller 208 to implement a thermal mitigation framework based on the power consumption of each of the ECUs 204. For example, the RMU 214 may be configured to apply one or more mitigation actions (e.g., frequency and / or clock throttling) to one or more of the ECUs 204 to mitigate the effects of heat produced by the ECUs 204.
[0044] FIG. 3 is a diagram illustrating an example of a thermal framework for an SoC of an apparatus according to some aspects. In one example, the apparatus 300 may be a radio communication device (e.g., a UE) or other mobile device capable of running one or more gaming applications or other application that provides content in frames per second (FPS) . The apparatus 300 includes an SoC 302 having a plurality of ECUs 304 (e.g., CPU, NSP, GPU, etc. ) thereon. Each of the ECUs 304 (e.g., ECU-A, ECU-B, and ECU-C) may be coupled to a thermal controller 306, which may correspond, for example, to the RMU 214 and / or controller 208 shown in FIG. 2. The thermal controller 306 may be configured to implement a thermal framework on the SoC 302.
[0045] The thermal controller 306 may be configured to receive, as input, a temperature 310 (e.g., a skin temperature) of the apparatus 300. In some examples, the skin temperature 310 may be measured by a thermistor 308 positioned near a surface of the apparatus 300. The thermal controller 306 may further be configured to calculate a change in temperature of the apparatus. For example, the thermal controller 306 may be configured to calculate the change in temperature as a difference between the current skin temperature 310 of the apparatus and an immediately prior skin temperature of the apparatus. For example, the immediately prior skin temperature may be stored, for example, in a register on the thermal controller or in an external memory device, such as memory 210 shown in FIG. 2.
[0046] The thermal controller 306 may further be configured to calculate a target frames per second (FPS) of an application (e.g., gaming application) running on the apparatus based on the change in temperature. The target FPS is inversely proportional to the change in temperature, which means as the temperature goes up, the target FPS goes down, and as the temperature goes down, the target FPS goes up. This correlation amounts to dynamic and indirect minimal frequency throttling of the ECUs (e.g., CPU / GPU) on the SoC 302 as the temperature increases to avoids applying traditional thermal mitigation frequency throttling actions that significantly impact the FPS and quality of the user gaming experience.
[0047] The thermal controller 306 may further be configured to calculate a difference between the target FPS and a current FPS of the gaming application. For example, the current FPS may be determined based on the current frequency of each of a CPU and GPU (e.g., CPU / GPU ECUs 304) on the SoC 302 (e.g., as determined based on prior frequency throttling applied to the CPU / GPU ECUs 304) . The thermal controller 306 may further be configured to apply at least one thermal mitigation action to at least one ECU 304 (e.g., at least one of the CPU / GPU) on the SoC 302 based on the difference between the target FPS and the current FPS. For example, the thermal controller 306 may be configured to throttle the frequency of each of the CPU and the GPU based on a load ratio 312 between the CPU and the GPU. For example, if the load ratio is 70 / 30, indicating that the CPU is responsible for 70%of the load on the SoC and the GPU is responsible for 30%of the load on the SoC, the thermal controller 306 may apply 70%of a frequency throttling amount to the CPU and 30%of the frequency throttling amount to the GPU. In some examples, the thermal controller 306 may be configured to receive the load ratio 312 between the CPU and the GPU from, for example, the controller 208 shown in FIG. 2 or other component configured to manage load on ECUs 304 of the apparatus 300.
[0048] FIG. 4 is a diagram illustrating an example of a thermal controller 400 of an apparatus according to some aspects. The apparatus may correspond, for example, to a mobile device configured to run a gaming application or other application providing content in frames per second (FPS) . The thermal controller 400 is configured to receive a device temperature 402 (e.g. skin temperature) of the apparatus. The device temperature 402 represents a current temperature (Current_T) of the apparatus.
[0049] The thermal controller 400 is further configured to provide the current temperature (Current_T) to an adder 406. The adder 406 is further configured to receive an immediately prior temperature (Last_T) from a memory 404 (e.g., an internal register or external memory) and to calculate a temperature difference (ΔT) between the current temperature and the immediately prior temperature corresponding to a change in temperature of the apparatus. For example, the adder 406 may be configured to subtract the immediately prior temperature (Last_T) from the current temperature (Current_T) to produce the temperature difference (ΔT) corresponding to the change in temperature of the apparatus. In addition, the current temperature (Current_T) is further stored within the memory 404 to be applied to the adder 406 as the immediately prior temperature in response to receiving a new (next) current temperature.
[0050] The change in temperature (ΔT) is input to an integrator 408 configured to calculate an FPS thermal change (Δfps_thermal) , indicating an amount of change to be applied to the FPS based on the change in temperature. For example, the integrator 408 may be configured to calculate the FPS thermal change (Δfps_thermal) as Δfps_thermal= ki∑ (ΔT*dt) , where ki is a coefficient parameter, ΔT is the change in temperature and dt is a control time period (e.g., 500 milliseconds, 1 second, etc. ) . The output of the integrator 408 (e.g., the FPS thermal change) is the time integral of the input signal (e.g., the change in temperature) , which means that the integrator 408 accumulates the input signal over time to produce a representative output.
[0051] The FPS thermal change (Δfps_thermal) is then input to adder 410. The adder 410 is further configured to receive a target thermal FPS (target_fps_thermal) and to calculate a target FPS (target_fps) as an FPS difference between the FPS thermal change (Δfps_thermal) and the target thermal FPS (target_fps_thermal) . For example, the adder 410 may be configured to subtract the FPS thermal change (Δfps_thermal) from the target thermal FPS (target_fps_thermal) to produce the target FPS (target_fps) . In some examples, the target thermal FPS is associated a particular gaming application running on the apparatus and stored on the apparatus. In addition, the target FPS (target_fps) represents the target FPS for that particular gaming application.
[0052] The target FPS (target_fps) is then input to another adder 412. The adder 412 is further configured to receive a current FPS (current_fps) of the gaming application and to calculate a difference between the target FPS (target_fps) and the current FPS (current_fps) to produce an FPS deviation (Δfps) . For example, the adder 412 may be configured to subtract the current FPS (current_fps) from the target FPS (target_fps) to produce the FPS deviation (Δfps) .
[0053] The FPS deviation (Δfps) is input to a proportional-integral-derivative (PID) controller 414 configured to calculate a frequency throttling amount (Δfreq) based on the FPS deviation (Δfps) . The PID controller 414 employs a control loop to apply a correction based on proportional, integral, and derivative terms (denoted P, I, and D respectively) . For example, the PID controller 414 may be configured to calculate the proportional term (P) as kp*Δfps, where kp is a coefficient parameter. In addition, the PID controller 414 may be configured to calculate the integral term (I) as ki*∑ (Δfps*dt) , where ki is a coefficient parameter (e.g., the same coefficient parameter as used in the integrator 408) and dt is the control time period. Furthermore, the PID controller 414 may be configured to calculate the derivative term (D) as kd* (Δfps-Δfps_last) / dt, where kd is a coefficient parameter and Δfps_last represents the last (immediately prior) Δfps (e.g., which may be stored, for example, in a register of the thermal controller 400 or PID controller 414 or within an external memory. The PID controller 414 may add each of the proportional term (P) , the integral term (I) , and the derivative term (D) together to produce the frequency throttling amount (Δfreq) .
[0054] The frequency throttling amount (Δfreq) is input to a distributor 416 configured to distribute the frequency throttling amount between a CPU and a GPU of the apparatus based on a load ratio between the CPU and GPU. For example, based on the load ratio, the distributor 416 may provide a CPU frequency throttling amount (Δcpufreq) to a CPU frequency controller 418 configured to throttle the CPU frequency by the CPU frequency throttling amount (Δcpufreq) and a GPU frequency throttling amount (Δgpufreq) to a GPU frequency controller 420 configured to throttle the GPU frequency by the GPU frequency throttling amount (Δgpufreq) .
[0055] The outputs of the CPU frequency controller 418 and GPU frequency controller 420 indicating a performance of the gaming application based on the respective frequencies of each of the CPU and GPU are fed back to an FPS generator 422. The FPS generator 422 is configured to determine the current FPS (current_fps) of the gaming application based on the performance. The current FPS (current_fps) is then fed to the adder 412 to determine a new FPS variation (Δfps) for input to the PID controller 414.
[0056] As can be seen in FIG. 4, the thermal controller 400 implements a closed-loop thermal management scheme based on both the temperature and the FPS. The scheme includes an exterior loop configured to control the temperature using the integrator 408 and an interior loop configured to stabilize the FPS using the PID controller 414. Thus, the thermal controller 400 is configured to indirectly throttle the frequency of the CPU / GPU through adjusting the FPS to provide thermal mitigation, which makes the FPS more stable and sustainable. In addition, by dynamically adjusting the target FPS based on the temperature trends, thermal mitigation may be improved. Furthermore, by dynamically throttling the GPU and CPU frequency and distributing the frequency throttling to the GPU and CPU based on their load ratio, the frequency throttling thermal mitigation scheme may be applicable to different scenario types (e.g., gaming applications) that are CPU-bound, GPU-bound, or both.
[0057] An example closed-loop thermal mitigation scheme is shown in FIGs. 5-8. In the example shown in FIG. 5, at an initial time, the current measured temperature is 48℃, the immediately prior stored temperature is 47℃, the target thermal FPS (target_fps_thermal) is 50 fps, and the current FPS (current_fps) is 52 fps. Thus, the change in temperature (ΔT) is 1℃. After integration with a ki=1 and dt=1 second, the resulting FPS thermal change (Δfps_thermal) is 1 fps. The target FPS (target_fps) then becomes 49 fps and the FPS variation (Δfps) for input to the PID controller is -3 fps.
[0058] As shown in FIG. 6, at a next time (e.g., upon receiving a next current measured temperature) , the current measured temperature is 49℃, the immediately prior stored temperature (shown in FIG. 5) is 48℃, the target thermal FPS (target_fps_thermal) is 50 fps, and the current FPS (current_fps) is 50 fps. Thus, the change in temperature (ΔT) is 1℃. After integration with a ki=1 and dt=1 second, the resulting FPS thermal change (Δfps_thermal) is 2 fps. The target FPS (target_fps) then becomes 48 fps and the FPS variation (Δfps) for input to the PID controller is -2 fps.
[0059] As shown in FIG. 7, at a next time (e.g., upon receiving a next current measured temperature) , the current measured temperature is 49℃, the immediately prior stored temperature (shown in FIG. 6) is 49℃, the target thermal FPS (target_fps_thermal) is 50 fps, and the current FPS (current_fps) is 49 fps. Thus, the change in temperature (ΔT) is 0℃.After integration with a ki=1 and dt=1 second, the resulting FPS thermal change (Δfps_thermal) is 2 fps. The target FPS (target_fps) then becomes 48 fps and the FPS variation (Δfps) for input to the PID controller is -1 fps.
[0060] As shown in FIG. 8, at a next time (e.g., upon receiving a next current measured temperature) , the current measured temperature is 48℃, the immediately prior stored temperature (shown in FIG. 6) is 49℃, the target thermal FPS (target_fps_thermal) is 50 fps, and the current FPS (current_fps) is 49 fps. Thus, the change in temperature (ΔT) is -1℃. After integration with a ki=1 and dt=1 second, the resulting FPS thermal change (Δfps_thermal) is 1 fps. The target FPS (target_fps) then becomes 49 fps and the FPS variation (Δfps) for input to the PID controller is 0 fps.
[0061] FIG. 9 is a diagram illustrating an exemplary architecture 900 of the thermal mitigation scheme according to some aspects. In the example shown in FIG. 9, the architecture includes three layers, an application layer 902, a native layer 904, and a kernel layer 906. The application layer 902 includes software for each of the gaming applications 908 (or other application providing content in FPS) . The native layer 904 includes a set of instructions to manage thermal mitigation. In the example shown in FIG. 9, the native layer 904 includes a target FPS regulator 910, a PID controller 912, and a distributor 914. The target FPS regulator 910 may correspond, for example, to the integrator 408 and adders 406, 410, and 412, and FPS generator 422 shown in FIG. 4. The PID controller 912 may correspond to the PID controller 414 shown in FIG. 4, and the distributor 914 may correspond to the distributor 416 shown in FIG. 4. The kernel layer 906 interfaces with hardware components of the device. In the example shown in FIG. 9, the kernel layer 906 may provide a current temperature (e.g., current_T shown in FIG. 4) 916 and a target thermal FPS (e.g., target_fps_thermal shown in FIG. 4) to the target FPS regulator 910. In addition, the kernel layer 906 may provide a load ratio 920 of the CPU and GPU to the distributor 914. The distributor 914 may then provide the CPU frequency throttling amount 922 and GPU frequency throttling amount 924 based on the load ratio 920 back to the kernel layer 906 for throttling of the CPU / GPU frequencies.
[0062] FIG. 10 is a chart illustrating an exemplary device thermal power envelope according to some aspects. In the example shown in FIG. 10, power is along the horizontal axis, while temperature is along the vertical axis, resulting in a depiction of an exemplary device thermal power envelope. The device thermal power envelope may be divided into thermal headroom zones, with the top thermal headroom zone 1002 corresponding to the zone at which normal thermal mitigation actions (e.g., clock / frequency throttling) are applied. However, with the potential for rapid temperature increases in gaming applications and the undesired FPS impact of normal thermal mitigation actions, the thermal mitigation framework described herein may be initiated prior to reaching the mitigation thermal headroom zone 1002.
[0063] In some examples, the thermal mitigation framework based on temperature and FPS may be initiated upon entering one of the lower thermal headroom zones (e.g., zones 1004-1012) . Each of the lower thermal headroom zones 1004-1012 has a respective temperature range and is associated with a percentage difference from a thermal mitigation temperature associated with the mitigation thermal headroom zone 1002 (e.g., the lowest temperature of the mitigation thermal headroom zone 1002, corresponding to the temperature at which the SoC reaches the maximum safe operating temperature) . For example, headroom zone 1004 is associated with a five percentage difference from the thermal mitigation temperature, headroom zone 1006 is associated with a ten percentage difference from the thermal mitigation temperature, headroom zone 1008 is associated with a thirty percentage difference from the thermal mitigation temperature, headroom zone 1010 is associated with a fifty percentage difference from the thermal mitigation temperature, and headroom zone 1012 is associated with a seventy-five percentage difference from the thermal mitigation temperature. Headroom zone 1014 is the lowest headroom zone associated with a low-power state of the device and for which no thermal mitigation needs to be applied.
[0064] In some examples, a percentage threshold may be set to determine when to enter the thermal mitigation framework based on temperature and FPS described herein. For example, the thermal controller may identify a current thermal headroom of the device, determine the percentage difference from the thermal mitigation temperature associated with that current thermal headroom and compare the percentage difference to the percentage threshold. If the percentage difference is less than (or less than or equal to) the percentage threshold, the thermal controller may initiate thermal mitigation based on temperature and FPS.
[0065] FIG. 11 is a diagram illustrating an exemplary process flow for thermal mitigation of an SoC of a device according to some aspects. As described below, some or all illustrated features may be omitted in a particular implementation within the scope of the present disclosure, and some illustrated features may not be required for implementation of all embodiments. In some examples, the process 1100 may be carried out by the thermal controller 306 illustrated in FIG. 3 and / or the thermal controller 400 illustrated in FIG. 4. In some examples, the process 1100 may be carried out by any suitable apparatus or means for carrying out the functions or algorithm described below.
[0066] At block 1102, the process begins with obtaining a current thermal headroom between a current temperature of a device (e.g., a mobile device including the SoC) and a thermal mitigation temperature. Here, the thermal headroom refers to the amount of temperature buffer before the SoC reaches the maximum safe operating temperature (e.g., the thermal mitigation temperature) , and may be calculated as the difference between the thermal mitigation temperature and the current temperature (or a percentage difference of the current temperature from the thermal mitigation temperature) .
[0067] At block 1104, the process continues with determining whether the current thermal headroom is less than a threshold. In some examples, the threshold may correspond to a percentage difference from the thermal mitigation temperature associated with a thermal headroom zone of a plurality of thermal headroom zones. In this example, the thermal headroom may also correspond to a percentage difference from the thermal mitigation temperature. Using the example shown in FIG. 10, the threshold may correspond to a ten percentage difference associated with thermal headroom zone 1006. If the thermal headroom (e.g., percentage difference from the thermal mitigation temperature) is less than the threshold percentage (e.g., the thermal headroom is less than 10%) , the thermal controller may initiate thermal mitigation based on temperature and FPS (Y branch of block 1104) .
[0068] For example, at block 1106, the process continues with obtaining the current temperature of the device (e.g., a skin temperature of the device) at the thermal controller. At block 1108, the process continues with updating an integrator output of the thermal controller based on the current temperature and the immediately prior temperature and storing the current temperature as the next immediately prior temperature.
[0069] At block 1110, the process continues with updating a current target FPS of the thermal controller based on the integrator output (e.g., FPS thermal change) and a target thermal FPS. At block 1112, the process continues with obtaining a current FPS of a gaming application (or other suitable application) running on the device. The current FPS may be determined in a closed-loop manner based on the frequency throttling previously applied to the CPU / GPU of the SoC.
[0070] At block 1114, the process continues with updating a PID controller output to produce a frequency throttling amount and distributing the frequency throttling amount to the CPU and GPU of the SoC. For example, the frequency throttling amount may be distributed based on the respective load of each of the CPU and GPU (e.g., the load ratio between the CPU and the GPU) . In an example, if the load ratio is 70: 30 with the CPU handing 70%of the load and the GPU handling 30%of the load, the frequency throttling amount may be distributed such that 70%of the frequency throttling amount is applied to the CPU and 30%of the frequency throttling amount is applied to the GPU. At blocks 1116 and 1118, the CPU frequency and GPU frequency are updated based on the respective frequency throttling amounts.
[0071] The process repeats at block 1102, where the current thermal headroom is obtained to determine whether the thermal headroom is sufficient to exit thermal mitigation (N branch of block 1104) or whether thermal mitigation continues (Y branch of block 1104) in a closed-loop manner.
[0072] FIG. 12 is a flow chart illustrating another exemplary process for thermal management of an SoC according to some aspects. As described below, some or all illustrated features may be omitted in a particular implementation within the scope of the present disclosure, and some illustrated features may not be required for implementation of all embodiments. In some examples, the process 1200 may be carried out by the thermal controller 306 illustrated in FIG. 3 and / or the thermal controller 400 illustrated in FIG. 4. In some examples, the process 1200 may be carried out by any suitable apparatus or means for carrying out the functions or algorithm described below.
[0073] At block 1202, the process begins with calculating a target FPS of an application running on a device (e.g., a mobile device) containing the SoC based on a change in temperature. For example, the thermal controller 306 and / or 400 shown and described above in connection with FIG. 3 and / or 4 may provide a means to calculate the target FPS.
[0074] At block 1204, the process continues with calculating a first FPS difference between the target FPS and a current FPS. For example, the thermal controller 306 and / or 400 shown and described above in connection with FIG. 3 and / or 4 may provide a means to calculate the first FPS difference.
[0075] At block 1206, the process continues with applying at least one first thermal mitigation action to at least one electronic control unit (ECU) on the SoC based on the first FPS difference. For example, the thermal controller 306 and / or 400 shown and described above in connection with FIG. 3 and / or 4 may provide a means to apply the at least one thermal mitigation action.
[0076] In some examples, the process may further continue with updating the target FPS and the current FPS in response to the at least one first thermal mitigation action to produce an updated target FPS and an updated current FPS. In addition, the process may further continue with updating the first FPS difference based on the updated target FPS and the updated current FPS to produce an updated first FPS difference and applying at least one second thermal mitigation action to the at least one ECU based on the updated first FPS difference.
[0077] In some examples, the process may be initiated by obtaining a current thermal headroom between a current temperature of the device and a thermal mitigation temperature and performing each of the calculating the target FPS, the calculating the first FPS difference, and the applying the at least one first thermal mitigation action in response to the current thermal headroom being less than a threshold. In some examples, the threshold is a percentage difference from the thermal mitigation temperature and is associated with a thermal headroom zone of a plurality of headroom zones.
[0078] FIG. 13 is a flow chart illustrating another exemplary process for thermal management of an SoC according to some aspects. As described below, some or all illustrated features may be omitted in a particular implementation within the scope of the present disclosure, and some illustrated features may not be required for implementation of all embodiments. In some examples, the process 1300 may be carried out by the thermal controller 306 and / or 400 illustrated in FIG. 3 and / or 4. In some examples, the process 1300 may be carried out by any suitable apparatus or means for carrying out the functions or algorithm described below.
[0079] At block 1302, the process begins with calculating a change in temperature as a temperature difference between a current temperature of a device (e.g., a mobile device including the SoC) and an immediately prior temperature of the device. For example, the thermal controller 306 and / or 400 shown and described above in connection with FIG. 3 and / or 4 may provide a means to calculate the change in temperature.
[0080] At block 1304, the process continues with integrating the change in temperature to produce an FPS thermal change. For example, the thermal controller 306 and / or 400 and / or integrator 408 shown and described above in connection with FIG. 3 and / or 4 may provide a means to integrate the change in temperature.
[0081] At block 1306, the process continues with calculating a target FPS as an FPS difference between the FPS thermal change and a target thermal FPS. For example, the thermal controller 306 and / or 400 shown and described above in connection with FIG. 3 and / or 4 may provide a means to calculate the target FPS.
[0082] In some examples, the process may continue with storing the current temperature as the immediately prior temperature and repeating the calculating the target FPS based on a new current temperature of the device.
[0083] FIG. 14 is a flow chart illustrating another exemplary process for thermal management of an SoC according to some aspects. As described below, some or all illustrated features may be omitted in a particular implementation within the scope of the present disclosure, and some illustrated features may not be required for implementation of all embodiments. In some examples, the process 1400 may be carried out by the thermal controller 306 and / or 400 illustrated in FIG. 3 and / or 4. In some examples, the process 1400 may be carried out by any suitable apparatus or means for carrying out the functions or algorithm described below.
[0084] At block 1402, the process begins with calculating a target frames per second (FPS) of an application running on a device (e.g., a mobile device including the SoC) based on a change in temperature of the device. For example, the thermal controller 306 and / or 400 shown and described above in connection with FIG. 3 and / or 4 may provide a means to calculate the target FPS.
[0085] At block 1404, the process continues with calculating a first FPS difference between the target FPS and a current FPS. For example, the thermal controller 306 and / or 400 shown and described above in connection with FIG. 3 and / or 4 may provide a means to calculate the first FPS difference.
[0086] At block 1406, the process continues with calculating a frequency throttling amount based on the first FPS difference using a proportional-integral-derivative (PID) controller. For example, the thermal controller 306 and / or 400 and / or PID controller 414 shown and described above in connection with FIG. 3 and / or 4 may provide a means to calculate the frequency throttling amount.
[0087] At block 1408, the process continues with distributing the frequency throttling amount between a CPU and a GPU of the SoC based on a load ratio between the CPU and the GPU. For example, the thermal controller 306 and / or 400 and / or distributor 416 shown and described above in connection with FIG. 3 and / or 4 may provide a means to distribute the frequency throttling amount.
[0088] In one configuration, an apparatus includes means for calculating a target frames per second (FPS) of an application running on a device based on a change in temperature of the device, means for calculating a first FPS difference between the target FPS and a current FPS, and means for applying at least one first thermal mitigation action to at least one electronic control unit (ECU) on the SoC based on the first FPS difference. In one aspect, the aforementioned means may be the controller 208, RMU 214, and memory 210 shown in FIG. 2 and / or the thermal controller 306 and / or 400 shown in FIG. 3 and / or 4 configured to perform the functions recited by the aforementioned means. In another aspect, the aforementioned means may be a circuit or any apparatus configured to perform the functions recited by the aforementioned means.
[0089] Of course, in the above examples, the thermal controller is merely provided as an example, and other means for carrying out the described functions may be included within various aspects of the present disclosure, including any other suitable apparatus or means described in any one of the FIGs. 1-4, and utilizing, for example, the processes and / or algorithms described herein in relation to FIGs. 9–14.
[0090] The following provides an overview of aspects of the present disclosure:
[0091] Aspect 1: An apparatus, comprising: at least one electronic control unit (ECU) on a system-on-chip (SoC) ; and a thermal controller configured to calculate a target frames per second (FPS) of an application running on the apparatus based on a change in temperature of the apparatus, to calculate a first FPS difference between the target FPS and a current FPS, and to apply at least one first thermal mitigation action to the at least one ECU on the SoC based on the first FPS difference.
[0092] Aspect 2: The apparatus of aspect 1, wherein the thermal controller is further configured to: calculate the change in temperature as a temperature difference between a current temperature of the apparatus and an immediately prior temperature of the apparatus; integrate the change in temperature to produce an FPS thermal change; and calculate the target FPS as a second FPS difference between the FPS thermal change and a target thermal FPS.
[0093] Aspect 3: The apparatus of aspect 2, wherein the thermal controller is further configured to: store the current temperature as the immediately prior temperature; and repeat calculation of the target FPS based on a new current temperature of the apparatus.
[0094] Aspect 4: The apparatus of any of aspects 1 through 3, wherein the at least one first thermal mitigation action comprises frequency throttling and the thermal controller is further configured to: calculate a frequency throttling amount based on the first FPS difference using a proportional-integral-derivative (PID) controller; and throttle a respective frequency of the at least one ECU based on the frequency throttling amount.
[0095] Aspect 5: The apparatus of aspect 4, wherein the at least one ECU comprises a central processing unit (CPU) and a graphics processing unit (GPU) and the thermal controller is further configured to: distribute the frequency throttling amount between the CPU and the GPU based on a load ratio between the CPU and the GPU.
[0096] Aspect 6: The apparatus of any of aspects 1 through 5, wherein the thermal controller is further configured to: update the target FPS and the current FPS in response to the at least one first thermal mitigation action to produce an updated target FPS and an updated current FPS; update the first FPS difference based on the updated target FPS and the updated current FPS to produce an updated first FPS difference; and apply at least one second thermal mitigation action to the at least one ECU based on the updated first FPS difference.
[0097] Aspect 7: The apparatus of any of aspects 1 through 6, wherein the thermal controller is further configured to: obtain a current thermal headroom between a current temperature of the apparatus and a thermal mitigation temperature; and perform each of calculation of the target FPS, calculation of the first FPS difference, and application of the at least one first thermal mitigation action in response to the current thermal headroom being less than a threshold.
[0098] Aspect 8: The apparatus of aspect 7, wherein the threshold comprises a percentage difference from the thermal mitigation temperature and is associated with a thermal headroom zone of a plurality of thermal headroom zones.
[0099] Aspect 9: A method of thermal mitigation on a system-on-chip (SoC) of a device, the method comprising: calculating a target frames per second (FPS) of an application running on the device based on a change in temperature of the device; calculating a first FPS difference between the target FPS and a current FPS; and applying at least one first thermal mitigation action to at least one electronic control unit (ECU) on the SoC based on the first FPS difference.
[0100] Aspect 10: The method of aspect 9, wherein the calculating the target FPS further comprises: calculating the change in temperature as a temperature difference between a current temperature of the device and an immediately prior temperature of the device; integrating the change in temperature to produce an FPS thermal change; and calculating the target FPS as a second FPS difference between the FPS thermal change and a target thermal FPS.
[0101] Aspect 11: The method of aspect 10, further comprising: storing the current temperature as the immediately prior temperature; and repeating the calculating the target FPS based on a new current temperature of the device.
[0102] Aspect 12: The method of any of aspects 9 through 11, wherein the at least one first thermal mitigation action comprises frequency throttling and further comprising: calculating a frequency throttling amount based on the first FPS difference using a proportional-integral-derivative (PID) controller; and throttling a respective frequency of the at least one ECU based on the frequency throttling amount.
[0103] Aspect 13: The method of aspect 12, wherein the at least one ECU comprises a central processing unit (CPU) and a graphics processing unit (GPU) , and wherein the throttling the respective frequency of the at least one ECU further comprises: distributing the frequency throttling amount between the CPU and the GPU based on a load ratio between the CPU and the GPU.
[0104] Aspect 14: The method of any of aspects 9 through 13, further comprising: updating the target FPS and the current FPS in response to the at least one first thermal mitigation action to produce an updated target FPS and an updated current FPS; updating the first FPS difference based on the updated target FPS and the updated current FPS to produce an updated first FPS difference; and applying at least one second thermal mitigation action to the at least one ECU based on the updated first FPS difference.
[0105] Aspect 15: The method of any of aspects 9 through 14, further comprising: obtaining a current thermal headroom between a current temperature of the device and a thermal mitigation temperature; and performing each of the calculating the target FPS, the calculating the first FPS difference, and the applying the at least one first thermal mitigation action in response to the current thermal headroom being less than a threshold.
[0106] Aspect 16: The method of aspect 15, wherein the threshold comprises a percentage difference from the thermal mitigation temperature and is associated with a thermal headroom zone of a plurality of thermal headroom zones.
[0107] Aspect 17: A system-on-chip (SoC) of a device, comprising: means for calculating a target frames per second (FPS) of an application running on the device based on a change in temperature of the device; means for calculating a first FPS difference between the target FPS and a current FPS; and means for applying at least one first thermal mitigation action to at least one electronic control unit (ECU) on the SoC based on the first FPS difference.
[0108] Aspect 18: The SoC of aspect 17, wherein the means for calculating the target FPS further comprises: means for calculating the change in temperature as a temperature difference between a current temperature of the device and an immediately prior temperature of the device; means for integrating the change in temperature to produce an FPS thermal change; and means for calculating the target FPS as a second FPS difference between the FPS thermal change and a target thermal FPS.
[0109] Aspect 19: The SoC of aspect 18, further comprising: means for storing the current temperature as the immediately prior temperature; and means for repeating the calculating the target FPS based on a new current temperature of the device.
[0110] Aspect 20: The SoC of any of aspects 17 through 19, wherein the at least one first thermal mitigation action comprises frequency throttling and the at least one ECU comprises a central processing unit (CPU) and a graphics processing unit (GPU) , and further comprising: means for calculating a frequency throttling amount based on the first FPS difference using a proportional-integral-derivative (PID) controller; and means for distributing the frequency throttling amount between the CPU and the GPU based on a load ratio between the CPU and the GPU.
[0111] Within the present disclosure, the word “exemplary” is used to mean “serving as an example, instance, or illustration. ” Any implementation or aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects of the disclosure. Likewise, the term “aspects” does not require that all aspects of the disclosure include the discussed feature, advantage or mode of operation. The term “coupled” is used herein to refer to the direct or indirect coupling between two objects. For example, if object A physically touches object B, and object B touches object C, then objects A and C may still be considered coupled to one another-even if they do not directly physically touch each other. For instance, a first object may be coupled to a second object even though the first object is never directly physically in contact with the second object. The terms “circuit” and “circuitry” are used broadly, and intended to include both hardware implementations of electrical devices and conductors that, when connected and configured, enable the performance of the functions described in the present disclosure, without limitation as to the type of electronic circuits, as well as software implementations of information and instructions that, when executed by a processor, enable the performance of the functions described in the present disclosure.
[0112] One or more of the components, steps, features and / or functions illustrated in FIGs. 1–14 may be rearranged and / or combined into a single component, step, feature or function or embodied in several components, steps, or functions. Additional elements, components, steps, and / or functions may also be added without departing from novel features disclosed herein. The apparatus, devices, and / or components illustrated in FIGs. 1-8 may be configured to perform one or more of the methods, features, or steps described herein. The novel algorithms described herein may also be efficiently implemented in software and / or embedded in hardware.
[0113] Any reference to an element herein using a designation e.g., “first, ” “second, ” and so forth does not generally limit the quantity or order of those elements. Rather, these designations are used herein as a convenient way of distinguishing between two or more elements or instances of an element. Thus, a reference to first and second elements does not mean that only two elements can be employed, or that the first element must precede the second element.
[0114] It is to be understood that the specific order or hierarchy of steps in the methods disclosed is an illustration of exemplary processes. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the methods may be rearranged. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented unless specifically recited therein.
[0115] The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but are to be accorded the full scope consistent with the language of the claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more. ” Unless specifically stated otherwise, the term “some” refers to one or more. A phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover: a; b; c; a and b; a and c; b and c; and a, b and c. All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. §112 (f) unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.”
Claims
1.An apparatus, comprising:at least one electronic control unit (ECU) on a system-on-chip (SoC) ; anda thermal controller configured to calculate a target frames per second (FPS) of an application running on the apparatus based on a change in temperature of the apparatus, to calculate a first FPS difference between the target FPS and a current FPS, and to apply at least one first thermal mitigation action to the at least one ECU on the SoC based on the first FPS difference.2.The apparatus of claim 1, wherein the thermal controller is further configured to:calculate the change in temperature as a temperature difference between a current temperature of the apparatus and an immediately prior temperature of the apparatus;integrate the change in temperature to produce an FPS thermal change; andcalculate the target FPS as a second FPS difference between the FPS thermal change and a target thermal FPS.3.The apparatus of claim 2, wherein the thermal controller is further configured to:store the current temperature as the immediately prior temperature; andrepeat calculation of the target FPS based on a new current temperature of the apparatus.4.The apparatus of claim 1, wherein the at least one first thermal mitigation action comprises frequency throttling and the thermal controller is further configured to:calculate a frequency throttling amount based on the first FPS difference using a proportional-integral-derivative (PID) controller; andthrottle a respective frequency of the at least one ECU based on the frequency throttling amount.5.The apparatus of claim 4, wherein the at least one ECU comprises a central processing unit (CPU) and a graphics processing unit (GPU) and the thermal controller is further configured to:distribute the frequency throttling amount between the CPU and the GPU based on a load ratio between the CPU and the GPU.6.The apparatus of claim 1, wherein the thermal controller is further configured to:update the target FPS and the current FPS in response to the at least one first thermal mitigation action to produce an updated target FPS and an updated current FPS;update the first FPS difference based on the updated target FPS and the updated current FPS to produce an updated first FPS difference; andapply at least one second thermal mitigation action to the at least one ECU based on the updated first FPS difference.7.The apparatus of claim 1, wherein the thermal controller is further configured to:obtain a current thermal headroom between a current temperature of the apparatus and a thermal mitigation temperature; andperform each of calculation of the target FPS, calculation of the first FPS difference, and application of the at least one first thermal mitigation action in response to the current thermal headroom being less than a threshold.8.The apparatus of claim 7, wherein the threshold comprises a percentage difference from the thermal mitigation temperature and is associated with a thermal headroom zone of a plurality of thermal headroom zones.9.A method of thermal mitigation on a system-on-chip (SoC) of a device, the method comprising:calculating a target frames per second (FPS) of an application running on the device based on a change in temperature of the device;calculating a first FPS difference between the target FPS and a current FPS; andapplying at least one first thermal mitigation action to at least one electronic control unit (ECU) on the SoC based on the first FPS difference.10.The method of claim 9, wherein the calculating the target FPS further comprises:calculating the change in temperature as a temperature difference between a current temperature of the device and an immediately prior temperature of the device;integrating the change in temperature to produce an FPS thermal change; andcalculating the target FPS as a second FPS difference between the FPS thermal change and a target thermal FPS.11.The method of claim 10, further comprising:storing the current temperature as the immediately prior temperature; andrepeating the calculating the target FPS based on a new current temperature of the device.12.The method of claim 9, wherein the at least one first thermal mitigation action comprises frequency throttling and further comprising:calculating a frequency throttling amount based on the first FPS difference using a proportional-integral-derivative (PID) controller; andthrottling a respective frequency of the at least one ECU based on the frequency throttling amount.13.The method of claim 12, wherein the at least one ECU comprises a central processing unit (CPU) and a graphics processing unit (GPU) , and wherein the throttling the respective frequency of the at least one ECU further comprises:distributing the frequency throttling amount between the CPU and the GPU based on a load ratio between the CPU and the GPU.14.The method of claim 9, further comprising:updating the target FPS and the current FPS in response to the at least one first thermal mitigation action to produce an updated target FPS and an updated current FPS;updating the first FPS difference based on the updated target FPS and the updated current FPS to produce an updated first FPS difference; andapplying at least one second thermal mitigation action to the at least one ECU based on the updated first FPS difference.15.The method of claim 9, further comprising:obtaining a current thermal headroom between a current temperature of the device and a thermal mitigation temperature; andperforming each of the calculating the target FPS, the calculating the first FPS difference, and the applying the at least one first thermal mitigation action in response to the current thermal headroom being less than a threshold.16.The method of claim 15, wherein the threshold comprises a percentage difference from the thermal mitigation temperature and is associated with a thermal headroom zone of a plurality of thermal headroom zones.17.A system-on-chip (SoC) of a device, comprising:means for calculating a target frames per second (FPS) of an application running on the device based on a change in temperature of the device;means for calculating a first FPS difference between the target FPS and a current FPS; andmeans for applying at least one first thermal mitigation action to at least one electronic control unit (ECU) on the SoC based on the first FPS difference.18.The SoC of claim 17, wherein the means for calculating the target FPS further comprises:means for calculating the change in temperature as a temperature difference between a current temperature of the device and an immediately prior temperature of the device;means for integrating the change in temperature to produce an FPS thermal change; andmeans for calculating the target FPS as a second FPS difference between the FPS thermal change and a target thermal FPS.19.The SoC of claim 18, further comprising:means for storing the current temperature as the immediately prior temperature; andmeans for repeating the calculating the target FPS based on a new current temperature of the device.20.The SoC of claim 17, wherein the at least one first thermal mitigation action comprises frequency throttling and the at least one ECU comprises a central processing unit (CPU) and a graphics processing unit (GPU) , and further comprising:means for calculating a frequency throttling amount based on the first FPS difference using a proportional-integral-derivative (PID) controller; andmeans for distributing the frequency throttling amount between the CPU and the GPU based on a load ratio between the CPU and the GPU.
Citation Information
Patent Citations
Display parameter adjusting method and device, electronic equipment and storage medium
CN113296724A
Frame rate switching method and device and storage medium
CN114461051A
Thermal Management For Smooth Variation In Display Frame Rate
US20160328821A1
System and method for intelligent thermal management in a system on a chip having a heterogeneous cluster architecture
US20170269652A1
Media device temperature management
US9612880B1