Abstract:
A data processor chip has a sensor that senses the temperature of the substrate. When the sensor senses that the temperature has increased beyond a predetermined level, the sensor supplies a signal to the processor. Upon receipt of the signal, the processor&#39;s execution switches from the current task to a task that is less compute intensive than the current one.

Description:
RELATED APPLICATIONS 
     This application claims the benefit of U.S. Provisional Application Ser. No. 60/027,097, filed Sep. 25, 1996. 
    
    
     RELATED APPLICATIONS 
     This application claims the benefit of U.S. Provisional Application Ser. No. 60/027,097, filed Sep. 25, 1996. 
     FIELD OF THE INVENTION 
     The invention relates to a control system to control power dissipation of a processing unit integrated in a semiconductor substrate. The system comprises at least one sensor operative to sense a temperature of the substrate. The system further has control means coupled to the sensor and operative to control operational activity of the processing unit in response to the temperature sensed. 
     BACKGROUND ART 
     The power dissipated during operational use of an electronic circuit reveals itself as heat. The heat generated by an integrated circuit typically increases with increasing transistor density and with increasing clock frequency. The eventual temperature of a semiconductor substrate in a stationary state is determined by the balance between the heat generated and the heat carried off of the substrate. A conventional way to handle excessive heat is attaching the substrate to a heat sink and/or by providing additional equipment for forced cooling such as a fan. Clearly, such measures not only are very costly, but also may preclude packaging due to the physical constraints. The use in portable equipment, e.g., in a PDA, becomes practically impossible: there is simply no room to accommodate all this equipment, the battery has very limited power and the weight would increase beyond an acceptable threshold. 
     Certain kinds of circuits tend to operate in bursts. That is, the circuit may, alternately, remain idle for a period of time and then operate at its maximum or near-maximum capacity for another period of time. Heat generation peaks are caused by the activity in the latter period. Because of the thermal inertia in the integrated circuit, the heat build-up and dissipation will lag behind the high-power consumption periods. That is, the heat generated during high-power operation may be carried off during those periods wherein the circuit is operating at low power. 
     Semiconductor packaging is designed to dissipate the amount of heat generated when the circuitry is operating at peak power. This guarantees that junction temperatures in semiconductor devices does not exceed prescribed operational limits. The semiconductor packaging cost premium due to measures required to handle peak power dissipation can be seen as wasteful. As already mentioned above, certain applications preclude special packaging due to physical constraints determined by the apparatus that is to accommodate the semiconductor device. 
     International Application WO92/10032 discloses a control system as specified in the preamble with multiple processor circuits that operate in a bursty fashion. In order to prevent heat damage, the known system senses the rate of change of operating temperature of the integrated processor circuits and adjusts the rate of operation of the circuits. The system includes a plurality of CMOS semiconductor chips, accommodating the processor circuits, and a sequence controller operative to supply instructions or data to the chips. Each chip is provided with a temperature sensor to generate an analog signal, indicative of the temperature sensed. In a particular embodiment, the sensor is physically integrated with the semiconductor substrate. The analog signal is supplied to a microprocessor via an A/D converter. The microprocessor serves as a PID controller and uses the received signal to calculate a quantity representative of the rate of change of the temperature. PID control allows taking into account the thermal inertia between the chip as a whole and the sensor. If the rate of change indicates that the chip&#39;s temperature will exceed a first predetermined value, no-op (no operation) instructions are supplied to the integrated circuit at a predetermined frequency. This allows the circuit to cool down. The rate of change of the temperature may indicate that the chip will reach a temperature higher than a second, higher predetermined value. In such case, additional no-op instructions are provided or the chip will be shut down completely. Alternatively, the clock frequency may be adjusted in response to the sensed rate of change of the temperature to achieve the desired cooling of the chip. 
     OBJECT OF THE INVENTION 
     It is, inter alia, an object of the invention to provide an alternative temperature control system. The alternative system interferes with the circuit&#39;s processing efficiency less severely than the system of the prior art using no-ops. 
     SUMMARY OF THE INVENTION 
     To this end, the invention provides a control system as specified in the preamble, wherein the control means is operative to effectuate switching the processing unit from a current process to another process that is less compute-intensive than the current process. The switching occurs in response to the sensor indicating the temperature having increased beyond a pre-specified threshold. 
     Consider, for example, a stream of video data encoded in MPEG to be processed by the processing unit. For MPEG see, e.g., &#34;Encyclopedia of Graphics File Formats&#34;, James D. 
     Murray and William vanRyper; O&#39;Reilly &amp; Associates, Inc.; 1994; ISBN 1-56592-058-9, pp. 458-464. An MPEG data stream contains compressed video information in I-frames, P-frames and B-frames. An I-(intra-frame encoded) frame does not rely on information in another frame to be encoded or decoded. A P-(predictive encoded) frame is constructed by predicting the difference between the current frame and the nearest preceding I-frame or P-frame. A B-(bidirectional encoded) frame is constructed from the nearest previous and the nearest next I-frames or P-frames. The B-frames take care of motion compensation. Under the MPEG-standards P-frames and B-frames are not mandatory, I-frames are. When the sensor issues the indication, the control means enables switching the processing unit from its current process to a less compute-intensive process wherein one (or more) of the B-frames and/or P-frames per sequence of frames is (or are) skipped to reduce the number of decoding operations per unit time required. This may go at the expense of the quality of the decoded image, but the processing at least continues and does not stall as in the cited art above. 
     As another example, consider a stream of audio data to be processed by the processing unit. A certain number of computations is required per data to attain a certain signal-to-noise ratio. Performance, and therefore heat generation, is reduced by decreasing the number of operations required per data in response to the signal issued by the temperature sensor. The audio performance can be made to degrade gracefully under temperature control. 
     As yet another example, a procedure with energy-consuming operations, such as multiply/accumulate (MAC) cycles, is temporarily replaced by another block of code with add (or subtract) -and-shift operations, which are more economical. Again, this may go at the expense of the quality of the result. 
     As yet another example, consider video server applications in a multi-tasking environment, wherein one task is the energy-consuming pulling out of MPEG scenes and parallel processing thereof, and wherein another, more economical, task is backing-up or another overhead task. These are activated alternately under temperature control. 
     The heat flow in the systems of these examples thus is re-directed by letting the processing unit execute a code that generates less heat per unit time than the preceding code. Switching hampers the processing unit&#39;s performance considerably less severely than the no-ops of the cited prior art. The no-ops are a mere waste of processing time, as are yet other methods such as clock rate reduction or clock rate suspension. 
     The switching may be activated as a result of a software trap or a software interrupt. A trap is synchronous with the program run by the processing unit, in the sense that the trap is initiated by some condition caused by the running program. The sensor&#39;s output signal is, for example, a flag bit set or reset in response to the temperature sensed. An interrupt is asynchronous with the program and is usually related to I/O, that is, it is usually initiated by a condition external to the processing unit. The sensor&#39;s output signal then is handled as if it were one of the I/O signals. For more information on traps and interrupts, see any textbook on computer organization, e.g., &#34;Structured Computer Organization&#34;, Andrew Tanenbaum, Prentice-Hall International Editions, 1976, pp. 307-312. 
     Another way of looking at the invention, when relating to a single processor, is to consider it as multiprogramming under temperature control. As known, multiprogramming is a technique for executing more than one program at a time in a single processor by periodically changing the program currently being executed by the processor. See, e.g., High-Performance Computer Architecture, Harold S. Stone, Addison-Wesley Publishing Company, 1987, p. 405. 
    
    
     DESCRIPTION OF THE DRAWING 
     The invention is explained below in further detail, by way of example and with reference to the accompanying drawing, wherein 
     FIG. 1 is a flow diagram of a cooling procedure; 
     FIG. 2 is a block diagram of a system in the invention; and 
     FIG. 3 is a diagram of a thermostat circuit for use in the invention. 
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
     FLOW DIAGRAM 
     FIG. 1 is an example of a flow diagram 100 for a cooling procedure in the invention. The codes or applications to be executed are ranked in advance according to the associated levels of (expected) heat generation, e.g., in terms of numbers of operations (e.g., floating point operations) performed per input data, or in terms of numbers of input data to be handled per unit time, or the prevalent use of energy consuming operations such as multiply/accumulate (MAC) cycles. The code that is the most compute-intensive is labelled scenario SCEN:=1. Other codes are labelled SCEN:=2, SCEN:=3, and further, in the order of decreasing heat generation and power consumption. For example, SCEN:=1 includes image processing of all I-, P- and B-frames received in an MPEG format video stream, SCEN:=2 includes MPEG image processing while skipping one or more B-frames per unit time or per number of B-frames in the stream; SCEN:=3 includes MPEG image processing while skipping selected B-frames and one or more of the P-frames per unit time or per number of B-frames and P-frames; etc. The temperature T is sampled in step 102. The sampled temperature is compared to a reference temperature T REF  in step 104. If the sampled temperature is higher than T REF , switching is enabled in step 106 by indicating that the current scenario SCEN should be interrupted and the next scenario SCEN+1 should be initiated: SCEN:=SCEN+1. Upon a wait-time having elapsed in step 108, the temperature is sampled and compared again in order to see if the switching has resulted in a temperature decrease. If no decrease is measured, the second next scenario SCEN+2 should replace scenario SCEN+1, that is: SCEN:=SCEN+1. The ultimate scenario may include putting the processing unit on hold eventually, or lowering the clock frequency in order to get the temperature below T REF . If the sampled temperature is not higher than T REF , switching is enabled in step 110 to permit execution of a more compute-intensive scenario SCEN-1 if the main scenario SCEN=1 has not yet been reached: SCEN:=SCEN-1. It should be clear that the temperature control procedure discussed above is a supporting tool and that regular switching is allowed to occur under program control or under control of the I/O of the processing unit. 
     The context switching may occur at the lowest software level (e.g., driver or algorithm switch) or at the highest operating system level (e.g., preemptive multi-task switching), or at any level in between. 
     SYSTEM BLOCK DIAGRAM 
     FIG. 2 gives a block diagram of a system 200 according to the invention, implementing the flow diagram of FIG. 1. The system comprises a data processing unit 202, a temperature sensor 204 and control means 206, all integrated in a semiconductor substrate 208. Sensor 204 provides a signal indicative of the local substrate temperature of processing unit 202 to control means 206. Control means 206 controls the operational activity of processing unit 202 in response to the temperature sensed by sensor 204. This is achieved by means of effectuating code switching in response to sensor 204 indicating the temperature having increased beyond a pre-specified threshold. 
     Control means 206 may be functionally merged with processing unit 202, i.e., control means 206 may be a functional part of processing unit 202, for the code switching to be initiated by a trap. Alternatively, control means 206 may serve as an I/O device to processing unit 202 and supply interrupt requests to processing unit 202. 
     Under some circumstances it may occur that code switching decreases heat generation by a smaller amount than no-ops in the prior art would. Accurate monitoring of the temperature is required in the invention. Sensor 204 should, therefore, be sensitive and accurate enough in the critical temperature range to allow close tracking of the temperature, preferably without any substantial thermal inertia. A way to achieve this is to physically integrate sensor 204 with substrate 208. This allows direct measurement of the local temperature of substrate 208. Preferably, sensor 204 is a functional portion of processing unit 202 itself, e.g., part of its PLL. Thus, sensor 202 provides a direct indication of the temperature at a location where it matters most, and thermal inertia effects are rendered substantially negligible. Note that the system in International Application WO92/10032 requires an extensive PID controller in order to take into account effects due to thermal inertia. 
     Preferably, sensor 204 and control means 206 are accommodated in the same substrate 208 as processing unit 202 in order to provide a thermally self-sufficient processing unit having a compact onboard thermostat. If the semiconductor substrate die is attached to a thermally conductive mechanical support (e.g., a heat spreader), the thermal gradient across the die is being reduced enough to only necessitate a single thermostat. 
     Preferably, sensor 204 is operative to provide a sensor voltage indicative of the temperature sensed, and control means 206 includes a voltage comparator 212. Comparator 212 has a first input 214 connected to sensor 210 for receipt of the sensor voltage, a second input 216 for receipt of a reference voltage and an output 218 for supply of a control signal indicative of the difference of its input voltages to effectuate the code switching. The reference voltage allows setting the switching point of comparator 212, and, therefore, to select the temperature value that triggers switching. 
     For the sake of completeness, reference is made to International Application WO95/25296. This prior art document discusses thermal control of a CPU, and states that it is known to have a temperature sensor connected to a comparator to issue a signal when the temperature of the CPU exceeds a threshold. The signal stops the generation of a timing signal. International Application WO95/25296 proposes as an alternative to vary the operating frequency continuously depending on the analog output provided by the temperature sensor. 
     THERMOSTAT CIRCUIT DIAGRAM 
     FIG. 3 is an example of a diagram of a thermostat circuit 300 for use in the invention. Circuit 300 serves to supply an output voltage that is indicative of the substrate&#39;s temperature and that is largely independent of process parameter spread and supply voltage. This it does preferably by providing a voltage that is proportional to the absolute temperature T of substrate 208. 
     Circuit 300 comprises two current branches 302 and 304 in parallel between a node 306 and GND. Branch 302 comprises a series arrangement of a resistor 308 and a diode 310. Branch 304 comprises a series arrangement of a resistor 312, a resistor 314, and a parallel arrangement 316 of a number of N diodes. Typically, N=20. Node 306 is an output of a current mirror with FETs 318 and 320. A node 322 forms an input of mirror 318/320. Node 322 is connected to a current source 324. An operational amplifier 326 has an output connected to a control input of current source 324. A first input of amplifier 326 is connected to a node 328 between resistor 312 and resistor 314. A second input of amplifier 326 is connected to a node 330 between resistor 308 and diode 310. Resistors 308 and 312 are identical. The configuration of circuit 300 forms a negative feedback loop to control the currents through branches 302 and 304 as follows. 
     The current in branch 302 equals: 
     
         I.sub.302 =I.sub.0 exp(qV.sub.be310 /kT)=I.sub.0 exp(qV.sub.330 /kT),(i) 
    
     wherein V be310  is the junction voltage of diode 310, and wherein V 330  is the voltage at node 330. 
     The current in branch 304 is: 
     
         NI.sub.304 =NI.sub.0 exp(qV.sub.be316 /kT),                (ii) 
    
     wherein V be316  is the voltage drop across a single diode in parallel arrangement 316 of N diodes, and I 304  is the current through a single diode in arrangement 316. The negative feedback loop controls the currents in such a way that the voltage at node 330 equals the voltage at node 328: 
     
         V.sub.330 =V.sub.be316 +NI.sub.304 R,                      (iii) 
    
     wherein R is the resistance of resistor 314. Formula (iii) translates to: 
     
         (kT/q) log (I.sub.302 /I.sub.0)=(kT/q) log (I.sub.304 /I.sub.0)+NI.sub.304 R,                                                        (iv) 
    
     which is equivalent to: 
     
         (kT/q) log (I.sub.302 /I.sub.304)=NI.sub.304 R             (v) 
    
     The condition that the voltage at node 330 be equal to the voltage at node 328 also translates into: 
     
         I.sub.302 R.sub.308 =NI.sub.304 R.sub.310                  (v) 
    
     wherein R 308  and R 310  are the resistances of resistors 308 and 310, respectively. Since R 308  equals R 310 , this implies that: 
     
         I.sub.302 =NI.sub.304                                      (vi) 
    
     Substituting (vi) into (v) gives: 
     
         (kT/q) log N=NI.sub.304 R=I.sub.302 R                      (vii) 
    
     or, written differently: 
     
         I.sub.302 =NI.sub.304 ={(kT/q) log N}/R                    (viii) 
    
     Formula (viii) implies that the aggregate current at output 306 of mirror 318/320 is proportional to the absolute temperature T and inversely proportional to resistance R. Mirroring out this current through additional mirror output 332 provides a current source that supplies a current I 0ut  proportional to the absolute temperature T and inversely proportional to a resistance R. This current I out  is made to flow through another resistor 334 with resistance R&#39; made with the same IC process on the same substrate as the rest of circuit 300. A voltage V 336  created at node 336 between mirror output 332 and resistor 334 thus has a voltage proportional to the absolute temperature since the temperature dependencies and process parameter spread cancel: 
     
         V.sub.336 ∝{(kT/q) log N }{R&#39;/R)∝(kT/q) log N(ix) 
    
     Comparing this voltage with a reference voltage V ref , preferably externally adjustable, in a comparator 338 creates a control signal to control context switching. The signal may be obtained through a push-pull configuration (not shown) of controllable current sources that is controlled via comparator 338 to get a fast response. 
     Note that circuit 300 provides a signal that is proportional to the absolute temperature, and therefore needs neither calibration nor external reference components whatsoever.