Patent Publication Number: US-2021181821-A1

Title: Method and apparatus of dynamic thermal management based on surface temperatures of portable device

Description:
BACKGROUND 
     In order to give a user a comfortable and acceptable touch temperature when using a handheld device, thermal throttling (dynamic thermal management) is inevitable to meet limited surface temperature for heavily loading scenarios. In the conventional art, a temperature information obtained by using a thermal sensor on the printed circuit board (PCB) is applied as a key performance indicator for the dynamic thermal management. However, because of the distance between the PCB and the case of the handheld device, the PCB temperature cannot truly reflect the surface temperature of the handheld device, and the thermal throttling may occur before the surface temperature actually reaches an upper limit of the surface temperature, and the processor starts to dump performance until the temperature drops to a safe operating range even if the actual surface temperature is not high enough, therefore affecting the performance of the handheld device. 
     SUMMARY 
     It is therefore an objective of the present invention to provide a method of the dynamic thermal management based on surface temperatures of portable device, to solve the above-mentioned problems. 
     According to one embodiment of the present invention, a method of dynamic thermal management applied to a portable device is disclosed, wherein the method comprises the steps of: obtaining a surface temperature of the portable device; obtaining a junction temperature of a chip of the portable device; and calculating an upper limit of the junction temperature according to the junction temperature and the surface temperature. 
     According to one embodiment of the present invention, a portable comprising a junction temperature limit calculator is disclosed. The junction temperature limit calculator comprises a buffer and a calculating circuit, wherein the buffer is arranged to store a surface temperature of the portable device and a junction temperature of a chip of the portable device, and the calculating circuit is configured to calculate an upper limit of the junction temperature according to the junction temperature and the surface temperature. 
     These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a diagram illustrating a portable device according to one embodiment of the present invention. 
         FIG. 2  is a diagram illustrating a junction temperature limit calculator and a dynamic thermal management circuit according to one embodiment of the present invention 
         FIG. 3  shows the circuit model for describing the thermal behaviors according to one embodiment of the present invention. 
         FIG. 4  is a diagram illustrating a junction temperature limit calculator and a dynamic thermal management circuit according to another embodiment of the present invention. 
         FIG. 5  is a flowchart of a dynamic thermal management method according to one embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, manufacturers may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . ”. The terms “couple” and “couples” are intended to mean either an indirect or a direct electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections. 
       FIG. 1  is a diagram illustrating a portable device  100  according to one embodiment of the present invention. As shown in  FIG. 1 , the portable device  100  comprises a PCB  110  and a display  120 , where the PCB  110  has at least a system on chip (SoC)  112 , a power management integrated circuit (PMIC)  114 , a camera  116 , a power amplifier  118  and a dynamic random access memory (DRAM)  119  mounted thereon. In this embodiment, the SoC  112  comprises a thermal sensor  132  for providing a junction temperature (i.e., internal temperature of the SoC  112 ), the PCB  110  has a thermal sensor  134  for providing a PCB temperature, and the SoC  112  comprises an application processor for controlling the operations of the portable device and performing dynamic thermal management to determine the power budget of the elements and circuit module&#39;s operating points (e.g. supply voltage or clock frequency). 
       FIG. 2  is a diagram illustrating a junction temperature limit calculator  210  and a dynamic thermal management circuit  220  according to one embodiment of the present invention, wherein the junction temperature limit calculator  210  and the dynamic thermal management circuit  220  can be built in the SoC  112 . As shown in  FIG. 2 , the junction temperature limit calculator  210  comprises a buffer  212 , a parameter calculator  214  and a calculating circuit  216 . In the operations of the junction temperature limit calculator  210 , the buffer  212  is used for storing a junction temperature Tj measured by the thermal sensor  132  in a real-time manner, a surface temperature Tsurf and an upper limit of the surface temperature Tsurf_limit, wherein the surface temperature Tsurf can be estimated by using the PCB temperature measured by the thermal sensor  134  (e.g. using the method described in US publication no. 2018/0245986) in a real-time manner or periodically, and the upper limit of the surface temperature Tsurf_limit is pre-determined. The parameter calculator  214  is used to calculate a parameter θ based on the current junction temperature Tj and the current surface temperature Tsurf. The calculating circuit  216  is configured to generate a new upper limit of the junction temperature Tj_limit_new to update the previous upper limit of the junction temperature. 
     In this embodiment, the parameter θ is used to model the relationship between the junction temperature Tj and the surface temperature Tsurf, and the calculating circuit  216  calculates the new upper limit of the junction temperature Tj_limit_new according to the upper limit of the surface temperature Tsurf_limit, the surface temperature Tsurf (i.e. the current surface temperature) and the parameter θ. In detail, the new upper limit of the junction temperature Tj_limit_new can be calculated as follows: 
         Tj _limit_new= Tj _limit_old+Δ Tj ( T surf_limit, T surf( t ),θ)  (1)
 
     wherein “Tj_limit_old” is the previous upper limit of the junction temperature. The parameter θ can be represented as a circuit model comprising thermal resistor(s) and capacitor(s).  FIG. 3  shows the circuit model for describing the thermal behaviors according to one embodiment of the present invention. As shown in  FIG. 3 , the circuit model comprises two thermal resistors R 1  and R 2  and a thermal capacitor C 1 , the junction temperature Tj(t) can be modeled as a voltage source  310  coupled between the thermal resistor R 1  and a ground voltage, an ambient temperature Tamb can be modeled as another voltage source coupled to the thermal resistor R 2 , and the surface temperature Tsurf can be modeled as an internal node between the thermal resistors R 1  and R 2 . By using the circuit model shown in  FIG. 3 , the ΔTj in the formula (1) can be expressed as follows: 
       Δ Tj=c 1*( T surf_limit− T surf_ n )+ c 2*( T surf( n− 1)− T surf_ n )  (2)
 
     where c 1  and c 2  are functions of the thermal resistors R 1  and R 2  and the thermal capacitor C 1 , Tsurf_n is a surface temperature corresponding to the time “n”, and Tsurf_(n−1) is a surface temperature corresponding to the time “n−1”. In this embodiment, c 1  and c 2  can be expressed as follows: 
     
       
         
           
             
               
                 
                   
                     c 
                      
                     
                         
                     
                      
                     1 
                   
                   = 
                   
                     
                       c 
                        
                       
                           
                       
                        
                       0 
                     
                     + 
                     
                       F 
                        
                       
                           
                       
                        
                       1 
                        
                       
                         ( 
                         
                           
                             R 
                              
                             1 
                           
                           
                             R 
                              
                             2 
                           
                         
                         ) 
                       
                     
                     + 
                     
                       F 
                        
                       2 
                        
                       
                         ( 
                         
                           
                             
                               R 
                                
                               1 
                             
                             
                               R 
                                
                               2 
                             
                           
                           , 
                           
                             R 
                              
                             
                                 
                             
                              
                             1 
                              
                             C 
                              
                             
                                 
                             
                              
                             1 
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
             
               
                 
                   c 
                   = 
                   
                     F 
                      
                     3 
                      
                     
                       ( 
                       
                         
                           
                             R 
                              
                             1 
                           
                           
                             R 
                              
                             2 
                           
                         
                         , 
                         
                           R 
                            
                           
                               
                           
                            
                           1 
                            
                           C 
                            
                           
                               
                           
                            
                           1 
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
     wherein c 0  is a constant, and F 1 , F 2  and F 3  are functions. 
     By using the above-mentioned formula (1)-(4), the new upper limit of the junction temperature Tj_limit_new can be calculated for the following dynamic thermal management. In one embodiment, the ΔTj can be calculated as follows: 
     
       
         
           
             
               
                 
                   
                     Δ 
                      
                     
                         
                     
                      
                     Tj 
                   
                   = 
                   
                     
                       ( 
                       
                         Tsurf_limit 
                         - 
                         Tsurf_n 
                       
                       ) 
                     
                     + 
                     
                       
                         
                           R 
                            
                           
                               
                           
                            
                           1 
                         
                         
                           R 
                            
                           
                               
                           
                            
                           2 
                         
                       
                       * 
                       
                         ( 
                         
                           Tsurf_limit 
                           - 
                           Tsurf_n 
                         
                         ) 
                       
                     
                     + 
                     
                       R 
                        
                       
                           
                       
                        
                       1 
                        
                       C 
                        
                       
                           
                       
                        
                       1 
                       * 
                       
                         ( 
                         
                           
                             ( 
                             
                               Tsurf_limit 
                               - 
                               Tsurf_n 
                             
                             ) 
                           
                           + 
                           
                             ( 
                             
                               
                                 Tsurf_ 
                                  
                                 
                                   ( 
                                   
                                     n 
                                     - 
                                     1 
                                   
                                   ) 
                                 
                               
                               - 
                               Tsurf_n 
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
           
         
       
     
     In the embodiment shown in  FIG. 2 , the parameter calculator  214  is an on-the-fly parameter calculator, that is the parameter θ can be changed/updated when the portable device  100  is used. In order to obtain the appropriate parameter θ based on the current surface temperature Tsurf and the junction temperature Tj, the thermal resistors R 1  and R 2  and the thermal capacitor C 1  are dynamically adjusted with the current surface temperature Tsurf and the junction temperature Tj. In one embodiment, the parameters (R 1 /R 2 ) and (R 1 C 1 ) used in the formula (3)-(5) can be obtained by solving the following equations (6) and (7): 
     
       
         
           
             
               
                 
                   
                     
                       
                         ( 
                         
                           
                             
                               T 
                               _ 
                             
                              
                             surf_n 
                           
                           + 
                           Tamb_n 
                         
                         ) 
                       
                       * 
                       
                         ( 
                         
                           
                             R 
                              
                             
                                 
                             
                              
                             1 
                           
                           
                             R 
                              
                             
                                 
                             
                              
                             2 
                           
                         
                         ) 
                       
                     
                     + 
                     
                       
                         T 
                         _ 
                       
                        
                       
                           
                       
                        
                       surf_n 
                       * 
                       R 
                        
                       
                           
                       
                        
                       1 
                        
                       C 
                        
                       
                           
                       
                        
                       1 
                     
                     - 
                     
                       
                         T 
                         _ 
                       
                        
                       
                           
                       
                        
                       j_n 
                     
                     - 
                     
                       
                         T 
                         _ 
                       
                        
                       
                           
                       
                        
                       surf_n 
                     
                   
                   ; 
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       
                         
                           ( 
                           
                             
                               
                                 T 
                                 _ 
                               
                                
                               surf_ 
                                
                               
                                 ( 
                                 
                                   n 
                                   - 
                                   1 
                                 
                                 ) 
                               
                             
                             + 
                             
                               Tamb_ 
                                
                               
                                 ( 
                                 
                                   n 
                                   - 
                                   1 
                                 
                                 ) 
                               
                             
                           
                           ) 
                         
                         * 
                         
                           ( 
                           
                             
                               R 
                                
                               
                                   
                               
                                
                               1 
                             
                             
                               R 
                                
                               
                                   
                               
                                
                               2 
                             
                           
                           ) 
                         
                       
                       + 
                       
                         
                           T 
                           _ 
                         
                          
                         surf_ 
                          
                         
                           ( 
                           
                             n 
                             - 
                             1 
                           
                           ) 
                         
                         * 
                         R 
                          
                         
                             
                         
                          
                         1 
                          
                         C 
                          
                         
                             
                         
                          
                         1 
                       
                       - 
                       
                         Tj_ 
                          
                         
                           ( 
                           
                             n 
                             - 
                             1 
                           
                           ) 
                         
                       
                       - 
                       
                         
                           T 
                           _ 
                         
                          
                         surf_ 
                          
                         
                           ( 
                           
                             n 
                             - 
                             1 
                           
                           ) 
                         
                       
                     
                     ; 
                   
                    
                   
                     
 
                   
                    
                   
                       
                   
                    
                   
                     
                       
                         wherein 
                          
                         
                             
                         
                          
                         
                           T 
                           _ 
                         
                          
                         surf_n 
                       
                       = 
                       
                         
                           ∫ 
                           
                             t 
                              
                             
                               ( 
                               
                                 n 
                                 - 
                                 1 
                               
                               ) 
                             
                           
                           tn 
                         
                          
                         
                           
                             Tsuft 
                              
                             
                               ( 
                               t 
                               ) 
                             
                           
                            
                           dt 
                         
                       
                     
                     , 
                     
                       
 
                     
                      
                     
                         
                     
                      
                     
                       
                         
                           T 
                           _ 
                         
                          
                         amb_n 
                       
                       = 
                       
                         
                           ∫ 
                           
                             t 
                              
                             
                               ( 
                               
                                 n 
                                 - 
                                 1 
                               
                               ) 
                             
                           
                           tn 
                         
                          
                         
                           
                             Tamb 
                              
                             
                               ( 
                               t 
                               ) 
                             
                           
                            
                           dt 
                         
                       
                     
                     , 
                     
                       
                         and 
                          
                         
                             
                         
                          
                         
                           T 
                           _ 
                         
                          
                         j_n 
                       
                       = 
                       
                         
                           ∫ 
                           
                             t 
                              
                             
                               ( 
                               
                                 n 
                                 - 
                                 1 
                               
                               ) 
                             
                           
                           tn 
                         
                          
                         
                           
                             Tj 
                              
                             
                               ( 
                               t 
                               ) 
                             
                           
                            
                           
                             dt 
                             . 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
           
         
       
     
     By using the parameter calculator  214  to dynamically adjust the parameter θ, the upper limit of the junction temperature Tj_limit_new can be appropriately determined based on the current junction temperature Tj and the surface temperature Tsurf. Furthermore, because the junction temperature limit calculator  210  provides the appropriate upper limit of the junction temperature Tj_limit_new in the real-time manner, the dynamic thermal management circuit  220  can arrange the suitable power budget for the elements within the portable device  100 , and the SoC  112  can start to dump the performance by lowering the clock frequency or voltage or disabling some circuit modules when the surface temperature Tsurf is actually close to the upper limit of the surface temperature. 
     It is noted that the circuit model shown in  FIG. 3  and the formula (3)-(5) and equations (6)-(7) are merely illustrative. In other embodiment of the present invention, the circuit model of the parameter θ may include more than two thermal resistors and more than one thermal capacitor. As long as the new upper limit of the junction temperature Tj_limit_new can be calculated based on the current surface temperature Tsurf, these alternative designs of the circuit models shall fall within the scope of the present invention. 
       FIG. 4  is a diagram illustrating a junction temperature limit calculator  410  and a dynamic thermal management circuit  420  according to another embodiment of the present invention, wherein the junction temperature limit calculator  410  and the dynamic thermal management circuit  420  can be built in the SoC  112 . As shown in  FIG. 4 , the junction temperature limit calculator  410  comprises a buffer  412 , a parameter calculator  414  and a calculating circuit  416 . In the operations of the junction temperature limit calculator  410 , the buffer  412  is used for storing a junction temperature Tj measured by the thermal sensor  132  in a real-time manner, a surface temperature Tsurf and an upper limit of the surface temperature Tsurf_limit, wherein the surface temperature Tsurf can be estimated by using the PCB temperature measured by the thermal sensor  134  (e.g. using the method described in US publication no. 2018/0245986), and the upper limit of the surface temperature Tsurf_limit is pre-determined. The parameter calculator  414  is used to calculate a parameter θ based on the current junction temperature Tj and the current surface temperature Tsurf when the portable device  100  is powered on. The calculating circuit  416  is configured to generate a new upper limit of the junction temperature Tj_limit_new to update the previous upper limit of the junction temperature. 
     In this embodiment, the parameter θ is used to model the relationship between the junction temperature Tj and the surface temperature Tsurf, and the calculating circuit  416  calculates the new upper limit of the junction temperature Tj_limit_new according to the upper limit of the surface temperature Tsurf_limit, the surface temperature Tsurf (i.e. the current surface temperature) and the parameter θ. In this embodiment, the new upper limit of the junction temperature Tj_limit_new can be obtained by using the above formula (1)-(5). 
     In the embodiment shown in  FIG. 4 , the parameter calculator  414  is configured to generate the parameter θ only at one or more specific times; for example, the parameter calculator  414  may generate the parameter θ only when the portable device  100  is powered on. That is, the parameter θ is pre-built, and the parameter θ may not be updated when the portable device  100  is used by the user. In order to pre-build the appropriate parameter θ based on the current surface temperature Tsurf and the junction temperature Tj, the parameters associated with the thermal resistors R 1  and R 2  and the thermal capacitor C 1  shown in  FIG. 3  can be determined according to the surface temperature Tsurf and the junction temperature Tj measured at the specific time. In one embodiment, the parameters (R 1 /R 2 ) and (R 1 C 1 ) used in the formula (3)-(5) can be obtained by solving the above equations (6) and (7), and the parameters (R 1 /R 2 ) and (R 1 C 1 ) (fixed values) are used by the calculating circuit to determine the upper limit of the junction temperature Tj_limit_new. 
       FIG. 5  is a flowchart of a dynamic thermal management method according to one embodiment of the present invention. Referring to  FIGS. 1-4  and the above disclosure, the flow is described as follows. 
     Step  500 : the flow starts. 
     Step  502 : receive the current junction temperature Tj, the current surface temperature Tsurf and the upper limit of the surface temperature. 
     Step  504 : calculate the upper limit of the junction temperature according to the current junction temperature Tj, the current surface temperature Tsurf and the upper limit of the surface temperature. 
     Step  506 : determine power budgets of the elements within the portable device according to the upper limit of the junction temperature. 
     Briefly summarized, in the dynamic thermal management method of the present invention, the surface temperature is used to determine the upper limit of the junction temperature of the SoC, and the upper limit of the junction temperature can be used to determine the power budgets of the elements within the portable device. By using the embodiments of the present invention, the power budget for the elements within the portable device can be appropriately arranged, and the SoC can start to dump the performance when the surface temperature of the portable device is actually close the upper limit of the surface temperature, to improve the performance of the SoC. 
     Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.