US20150106640A1 - Accelerated thermal mitigation for multi-core processors - Google Patents

Accelerated thermal mitigation for multi-core processors Download PDF

Info

Publication number
US20150106640A1
US20150106640A1 US14/052,191 US201314052191A US2015106640A1 US 20150106640 A1 US20150106640 A1 US 20150106640A1 US 201314052191 A US201314052191 A US 201314052191A US 2015106640 A1 US2015106640 A1 US 2015106640A1
Authority
US
United States
Prior art keywords
processor
processor cores
cores
busy
core processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US14/052,191
Other versions
US9342135B2 (en
Inventor
David Samuel Brackman
Sumeet Singh Sethi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Priority to US14/052,191 priority Critical patent/US9342135B2/en
Assigned to QUALCOMM INCORPORATED reassignment QUALCOMM INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BRACKMAN, David Samuel, SETHI, SUMEET SINGH
Priority to EP14787330.1A priority patent/EP3055751A1/en
Priority to JP2016521602A priority patent/JP6077182B2/en
Priority to CN201480053652.XA priority patent/CN105579926B/en
Priority to KR1020167009929A priority patent/KR101726552B1/en
Priority to PCT/US2014/059113 priority patent/WO2015054072A1/en
Publication of US20150106640A1 publication Critical patent/US20150106640A1/en
Publication of US9342135B2 publication Critical patent/US9342135B2/en
Application granted granted Critical
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • This disclosure relates to temperature management for multi-core processors.
  • a multi-core processor such as a multi-core graphics processing unit (GPU) or a multi-core central processing unit (CPU), may dissipate heat as the multi-core processor processess computer instructions.
  • the heat produced by the processor cores may include heat produced by dynamic power dissipation and static leakage.
  • Dynamic power dissipation may be heat generated by the charging and discharging of transistors of the processor as the processor processes computer instructions
  • static leakage may be heat generated from gate leakage and other leakage currents that flow when the processors are powered on, even when transistors of the processor are not in use (e.g., when the processors are powered on but idle).
  • thermal mitigation strategies may be implemented to prevent the processors from overheating.
  • aspects of the present disclosure describe techniques for accelerated thermal mitigation of multi-core processors that have exceeded their thermal envelope.
  • a multi-core processor having a temperature that is higher than its temperature threshold can have its temperature return quickly below the temperature threshold while preserving more of its processing power by power collapsing one or more busy processor cores without changing the clock and/or voltage.
  • a method for thermally mitigating a multi-core processor includes power collapsing one or more busy processor cores of a multi-core processor without reducing clock speed of the multi-core processor in response to a temperature of the multi-core processor exceeding a temperature threshold.
  • an apparatus in another example, includes a multi-core processor and a power control module configured to power collapsing one or more busy processor cores of the multi-core processor without reducing clock speed of the multi-core processor in response to a temperature of the multi-core processor exceeding a temperature threshold.
  • a an apparatus in another example, includes means for sensing a temperature of a multi-core processor and means for power collapsing one or more busy processor cores of the multi-core processor without reducing clock speed of the multi-core processor in response to a temperature of the multi-core processor sensed by the means for sensing the temperature of the multi-core processor exceeding a temperature threshold.
  • a computer-readable medium such as a computer-readable storage medium, stores instructions that, when executed, cause one or more programmable processors to power collapse one or more busy processor cores of a multi-core processor without reducing clock speed of the multi-core processor in response to a temperature of the multi-core processor exceeding a temperature threshold.
  • FIG. 1 is a block diagram illustrating an example processor unit that includes a multi-core processor where one or more busy cores can be stopped for thermal mitigation according to some aspects of the present disclosure.
  • FIG. 2 is a flow chart illustrating an example method of thermally mitigating a multi-core processor according to some aspects of the present disclosure.
  • FIGS. 3A-3D are conceptual diagrams illustrating power collapsing of busy cores of a multi-core processor on a rotating basis in accordance with aspects of the present disclosure.
  • FIGS. 4A-4D are conceptual diagrams illustrating power collapsing of busy cores of a multi-core processor via an intelligent rotating algorithm, in accordance with aspects of the present disclosure.
  • FIG. 5 is a block diagram illustrating an example of a device that may be configured to implement one or more aspects of this disclosure.
  • Some potential approaches to thermally mitigate a multi-core processor may include reducing the clock rate and the voltage levels for the processor cores when the temperature of the processor exceeds a temperature threshold. Once the temperature of the processor returns to a normal level, the original clock rate and voltage levels for the processor can be restored.
  • the clock for the processor cores of the processor is typically also the clock used by other components of the processor besides the processor cores, such as memories and caches on the processor, reducing the clock rate of the processors will also reduce the performance of these components.
  • reducing the clock rate and the voltage levels may reduce dynamic power dissipation, such an approach does not mitigate heat caused by static leakage.
  • aspects of the present disclosure includes power collapsing (i.e., turning off) one or more cores of a multi-core processor when a temperature threshold is exceeded without reducing the clock rate or voltage levels for the processor.
  • the temperature threshold may be lower than an emergency threshold, which may be a temperature threshold above which the processor may be damaged by the heat.
  • the cores that are power collapsed may be busy cores, in that the cores are actively performing instructions. Power collapsing busy cores of the processor reduces both dynamic power dissipation and static leakage while providing increased performance relative to previous approaches of reducing the clock rate and voltage levels because other components of the processor, such as memories and caches, can continue to run at a normal non-reduced clock rate.
  • power collapsing two of the cores so that only two of the four cores continue to operate may provide better performance than reducing the clock speed of the processor by 50 %.
  • power collapsing busy cores may allow the processor to cool more quickly so that its temperature returns to below the temperature threshold much faster than the previously proposed solution of reducing the clock rate and voltage because, as discussed above, power collapsing cores reduces both the dynamic power and the static leakage of the disabled cores.
  • FIG. 1 is a block diagram illustrating an example processor unit that includes a multi-core processor where one or more busy cores can be stopped for thermal mitigation according to some aspects of the present disclosure.
  • processing unit 102 may include a plurality of processor cores 104 A- 104 N (hereafter “processor cores 104 ”).
  • processor cores 104 may be included in a single integrated circuit die. In other examples, processor cores 104 may be included in multiple integrated circuit dies in a single chip package.
  • Processing unit 102 may be a multi-core microprocessor because processing unit 102 includes a plurality of processor cores 104 .
  • Processing unit 102 may be a microprocessor, such as a central processing unit (CPU) configured to process instructions of a computer program for execution, or may be a graphics processing unit (GPU) configured to process graphics processing instructions to render a graphical scene at a display (not shown).
  • CPU central processing unit
  • GPU graphics processing unit
  • Each processor core of processor cores 104 may be associated with one or more of caches 112 A- 112 N (hereafter “caches 112 ”).
  • caches 112 may be L1 cache that provides a first level of caching for processor cores 104 .
  • Processing unit 102 may also include cache 114 .
  • cache 114 may be L2 cache that provides a second level of caching for processor cores 104 .
  • Processing unit 102 may also be operably coupled to memory 116 .
  • Sequencer 106 may be configured to manage and schedule the execution of instructions amongst processor cores 104 .
  • Individual processor cores in processor cores 104 may be configured to process instructions in parallel. When a processor core in processor cores 104 is processing instructions, that processor core may be considered busy. In contrast, when a processor core in processor core 104 is not processing any instructions, that processor may be considered idle.
  • Clock 120 may be configured to produce a periodic clock signal at a specified clock speed that regulates the components of processing unit 102 .
  • Clock 120 may be operably coupled to processing unit 102 and may transmit the clock signal to processing unit 102 .
  • Processing unit 102 may distribute the clock signal produced by clock 120 to its components, such as processor cores 104 , caches 112 , and cache 114 . In some examples, clock 120 may also transmit the clock signal to memory 116 .
  • Processing unit 102 may read and write data to memory 116 .
  • Caches 112 and cache 114 may cache data that are read from and are to be written to memory 116 for processor cores 104 .
  • processing unit 102 may power collapse one or more busy processor cores of processor cores 104 , without reducing the clock speed of clock 120 , in response to a temperature of the processing unit 102 exceeding a temperature threshold.
  • Temperature sensor 110 may be configured to sense the temperature of processing unit 102 and may continuously sense the temperature of processing unit 102 . Temperature sensor 110 , in some examples, may sense the temperature of the portion of the integrated circuit die comprising processor cores 104 or the temperature of the portion of the chip package comprising processor cores 104 . Examples of temperature sensor 110 may include a thermistor, which is a resistor having a resistance that varies based on temperature.
  • the temperature threshold for processing unit 102 may be specified based on a variety of factors such as the desired performance of processing unit 102 , the desired power consumption of processing unit 102 , and the longevity of processing unit 102 . For example a relatively higher temperature threshold may be specified if high performance is desired, while a relatively lower temperature may be chosen if power conservation is desired.
  • the temperature threshold for processing unit 102 may be lower than an emergency temperature threshold where there is a great risk for imminent failure of processing unit 102 in the short term if the temperature of processing unit 102 exceeds the temperature threshold.
  • Processing unit 102 may read or otherwise receive the measured temperature from temperature sensor 110 and may compare the measured temperature to the temperature threshold for processing unit 102 . If processing unit 102 determines that the measured temperature from temperature sensor 110 exceeds a specified temperature threshold for processing unit 102 , processing unit 102 may enable power control module 108 to power collapse one or more busy processor cores of processor cores 104 to cause the temperature of processing unit 102 to decrease.
  • Power collapsing one or more processor cores of processor cores 104 may include power control module 108 turning off power, voltage, and/or current to the one or more processor cores as well as preventing clock signals from reaching the one or more processor cores. Power collapsing one or more processor cores of processor cores 104 may also include power collapsing one or more associated components of the one or more processor cores, such as one or more caches of caches 112 associated with the one or more processor cores. Similarly, power control module 108 may turn off power, voltage, and/or current to the one or more caches of caches 112 associated with the one or more processor cores.
  • processing unit 102 may communicate an indication of the one or more processor cores to be power collapsed to sequencer 106 and to power control module 108 .
  • Sequencer 106 may manage processor cores 104 so that no additional instructions are scheduled for the one or more processor cores to be power collapsed.
  • Sequencer 106 may also save state information for the one or more processor cores' threads, save the one or more processor cores' registers, and flush one or more caches associated with the one or more processor cores.
  • Sequencer 106 may also monitor processor cores 104 to determine when the one or more processor cores to be power collapsed have finished processing their current instructions.
  • Sequencer 106 may, in response to determining that the one or more processor cores to be power collapsed have finished processing their current instructions, send an indication to processing unit 102 that it has finished preparing processor cores 104 .
  • processing unit 102 may enable power control module 108 to power collapse the one or more processor cores including power collapsing one or more components of processing unit 102 associated with the one or more processor cores, such as one or more caches of caches 112 associated with the one or more processor cores.
  • Processing unit 102 may determine if the measured temperature has dropped below the temperature threshold for processing unit 102 and may, in response to the measured temperature being below the temperature threshold for processing unit 102 , turn on the power collapsed one or more processor cores.
  • Power control module 108 may turn on power, voltage, and/or current to the power collapsed one or more processor cores and its associated components, and may enable clock signals from reaching the one or more processor cores and its associated components.
  • Power control module 108 may also send an indication to sequencer 106 that the previously power collapsed one or more processor cores, and in response sequencer 106 may schedule computing instructions to be processed by the one or more processor cores.
  • processing unit 102 may not include sequencer 106 .
  • processing unit 102 may be a CPU that does not include sequencer 106 .
  • an operating system executing on processing unit 102 may determine if one or more processor cores of processor cores 104 has been power collapsed and, in response, may determine not to schedule additional instructions for the power collapsed one or more processor cores.
  • the operating system may also save the operating system state for the power collapsed one or more processor cores' threads, save the contents of registers associated with the power collapsed one or more processor cores, and may flush the caches associated with the power collapsed one or more processor cores.
  • the number of processor cores of processor cores 104 that power control module 108 collapses may depend on balancing the tradeoff between processing speed and how long it takes for the temperature of processing unit 102 to return below the temperature threshold. If processor cores 104 include N processor cores, power control module 108 may power collapse anywhere from 1 to N busy cores based on factors such as the rate of thermal mitigation and the operating mode of processing unit 102 .
  • Processing unit 102 may determine which of the busy cores of processor core 104 to power collapse by rotating the sets of processor cores of processor cores 104 that power control module 108 power collapses. For example, if processor core 104 includes four processor cores, and if power control module 108 power collapses two cores each time the temperature of processing unit 102 exceeds the temperature threshold to thermally mitigate the temperature of processing unit 102 , power control module 108 may rotate between two sets of two busy cores to alternately power collapse each of the two sets of two busy cores each time the temperature of processing unit 102 exceeds the temperature threshold. If, for example, processor core 104 includes eight processor cores, power control module 108 may power collapse the least recently power collapsed set of two busy cores.
  • processing unit 102 may determine the time it takes for the temperature of processing unit 102 to return below the temperature threshold, and may associate the time elapsed before the temperature of processing unit 102 returns below the temperature threshold with the sets of busy cores of processor cores 104 that were power collapsed at the time. In this way, processing unit 102 may identify which set or sets of busy cores were power collapsed when the temperature of processing unit 102 took the least amount of time to return below the temperature threshold, and processing unit 102 may enable power control module 108 to power collapse the identified set or sets of busy cores to power collapse in response to the temperature of processing unit 102 exceeding the temperature threshold.
  • processor cores 104 may include eight cores and power control module 108 may power collapse sets of two cores at a time. If processing unit 102 identifies two sets of two cores each that, when power collapsed, produces the shortest elapsed time for the temperature of processing unit 102 to cool below the temperature threshold, power control module 108 may alternately power collapse the two identified sets of cores each time the temperature of processing unit 102 exceeds the temperature threshold.
  • Processing unit 102 may also determine which of the busy cores of processor core 104 based at least in part on power leakage characteristics of busy processor cores of processor cores 104 , so that the cores that have the most static leakage may be chosen to be power collapsed. For example, additional temperature sensors (not shown) may be placed on processing unit 102 to measure the heat dissipation and temperature of each core of processor cores 104 as processor cores 104 are in use. Based on the temperature of the individual cores of processor cores 104 , power control module 108 may power collapse the cores of processor cores 104 having the highest temperature.
  • a technician or other personnel may, after fabrication of processor cores 104 , measure the static leakage of each core of processor cores 104 , and such information may be used by processing unit 102 in selecting the busy cores of processor cores 104 that power control module 108 power collapses based on the static leakage of the processor cores.
  • processor unit 102 may indicate to sequencer 106 the processor cores of processor cores 104 to be power collapsed by power control module 108 .
  • sequencer 106 may schedule the instructions to be performed by processor cores 104 so that the processor cores of processor cores 104 to be collapsed by power control module 108 do not receive any additional instructions to process besides the instructions currently being processed by those processor cores.
  • sequencer 106 may send an indication to processing unit 102 that those processor cores of processor cores 104 can be power collapsed.
  • processing unit 102 may enable power control module 108 to shut off power to the processor cores of processor cores 104 that processing unit 102 had previously determined to power collapse.
  • FIG. 2 is a flow chart illustrating an example method of thermally mitigating a multi-core processor according to some aspects of the present disclosure.
  • processor cores 104 of a multi-core processor 102 may be busy processing instructions to execute a software application, processing graphics instructions to render a graphical scene, processing mathematical operations on a series of data samples for a digital signal processor, and the like ( 202 ).
  • processor cores 104 may dissipate heat, including heat produced by dynamic power dissipation and heat from static leakage of processor cores 104 .
  • Temperature sensor 110 may measure the temperature of multi-core processor 102 and may communicate the measured temperature to power control module 108 , and power control module 108 may determine if the measured temperature of multi-core processor 102 is higher than a threshold temperature ( 204 ). If the measured temperature of multi-core processor 102 does not exceed the threshold temperature, processor cores 104 of multi-core processor 102 may continue to process instructions ( 202 ).
  • multi-core processor 102 may power collapse one or more of the processor cores 104 ( 206 ).
  • Power collapsing a processor core may include power collapsing supporting hardware components associated with the processor core, such as caches, texture pipelines, rendering buffers, and the like for the power collapsed processor core.
  • Processing unit 102 may employ intelligent strategies to determine which processor cores of processor cores 104 are power collapsed.
  • processing unit 102 may rotate the processor cores of processor cores 104 that are power collapsed each time the temperature of processing unit 102 exceeds its temperature threshold.
  • processor cores 104 may comprise four processor cores and a set of two processor cores may be power collapsed each time the temperature exceeds the temperature threshold.
  • Processing unit 102 may, in response to its temperature exceeding its temperature threshold, power collapse a first set of two processor cores of processor cores 104 . The next time processing unit 102 's temperature exceeds its temperature threshold, processing unit 102 may collapse a second set of two processor cores of processor cores 104 that are different than the first set of two processor cores 104 .
  • processing unit 102 may determine to power collapse the processor core or processor cores of processor cores 104 that have the greatest amount of static leakage, or processing unit 102 may determine to power collapse the processor core or processor cores of processor cores 104 that drops in temperature the fastest after being power collapsed.
  • the reduced set of processor cores 104 that remains powered on may continue to process instructions ( 208 ), and temperature sensor 110 may continue to measure the temperature of multi-core processor 102 . Temperature sensor 110 may communicate the measured temperature to power control module 108 , and power control module 108 may determine if the measured temperature of multi-core processor 102 is lower than a threshold temperature ( 210 ). If the measured temperature of multi-core processor 102 continues to exceed the threshold temperature, the reduced set of processor cores 104 remains powered on may continue to process instructions ( 208 ).
  • power control module 108 may power on the previously power collapsed processor cores of processor cores 104 ( 212 ), and the full set of processor cores of processor cores 104 may process instructions ( 202 ).
  • FIGS. 3A-3D are conceptual diagrams illustrating power collapsing of busy cores of a multi-core processor on a rotating basis amongst the cores in accordance with aspects of the present disclosure.
  • processor cores 104 may comprise eight processor cores 104 A- 104 H, and two of the processor cores may be shut off at a time when the temperature of the processing unit exceeds the temperature threshold.
  • FIG. 3A when the temperature of processing unit 102 comprising processor cores 104 exceeds a temperature threshold, processing unit 102 may turn off two processor cores 104 A and 104 B. As shown in FIG.
  • processing unit 102 may rotate the processor cores that are turned off for thermal mitigation by turning off two processor cores 104 C and 104 D.
  • FIG. 3C after processing unit 102 turns processor cores 104 C and 104 D back on in response to its temperature falling below the temperature threshold, in the next instance of when the temperature of processing unit 102 exceeds the temperature threshold, the processing unit 102 may rotate the processor cores that are turned off for thermal mitigation by turning off two processor cores 104 E and 104 F.
  • FIG. 3B after processing unit 102 turns processor cores 104 A and 104 B back on in response to its temperature falling below the temperature threshold, in the next instance of when the temperature of processing unit 102 exceeds the temperature threshold, the processing unit 102 may rotate the processor cores that are turned off for thermal mitigation by turning off two processor cores 104 E and 104 F.
  • processing unit 102 may rotate the processor cores that are turned off for thermal mitigation by turning off two processor cores 104 G and 104 H.
  • FIGS. 4A-4D are conceptual diagrams illustrating power collapsing of busy cores of a multi-core processor via an intelligent rotating algorithm, in accordance with aspects of the present disclosure.
  • Processing unit 102 may determine which processor cores or sets of processor cores may, when turned off, cool down faster compared to the other processor cores of processor cores 104 . Upon processing unit 102 making such a determination of the cool down speed of the processor cores, processing unit 102 may shut off those processor cores in response to the temperature of processing unit 102 exceeding the temperature threshold.
  • the set of processor cores 104 A and 104 B and the set of processor cores 104 E and 104 F are the sets of processor cores having temperatures that decrease the fastest when they are switched from being on and busy to being off. Based at least in part on that information, processing unit 102 may rotate between turning off the set of processor cores 104 A and 104 B and the set of processor cores 104 C and 104 D if the temperature of processing unit 102 exceeds the temperature threshold. As shown in FIG. 4A , when the temperature of processing unit 102 comprising processor cores 104 exceeds the temperature threshold, processing unit 102 may turn off a first set of two processor cores 104 A and 104 B. As shown in FIG.
  • processing unit 102 may turning off a second set of two processor cores 104 E and 104 F. As shown in FIG. 4B , after processing unit 102 turns processor cores 104 A and 104 B back on in response to processing unit 102 's temperature falling below the temperature threshold, in the next instance of when the temperature of processing unit 102 exceeds the temperature threshold, the processing unit 102 may turning off a second set of two processor cores 104 E and 104 F. As shown in FIG.
  • processing unit 102 may rotate back to turning off processor cores 104 A and 104 B in the next instance of when the temperature of processing unit 102 exceeds the temperature threshold. Similarly, as shown in FIG. 4C , because processing unit 102 determines that sets of processor cores 104 A and 104 B and processor cores 104 E and 104 F are the most efficient sets of processor cores at cooling down upon being turned off, after processing unit 102 turns processor cores 104 E and 104 F back on in response to processing unit 102 's temperature falling below the temperature threshold, the processing unit 102 may rotate back to turning off processor cores 104 A and 104 B in the next instance of when the temperature of processing unit 102 exceeds the temperature threshold. Similarly, as shown in FIG.
  • processing unit 102 may rotate the processor cores that are turned off for thermal mitigation by turning off two processor cores 104 A and 104 B. As such, by determining the processor cores that cool down the fastest after being power collapsed, and by power collapsing the sets of processor cores that cool down the fastest, processing unit 102 may enable its temperature to more quickly drop below the temperature threshold.
  • FIG. 5 is a block diagram illustrating an example of a device that may be configured to implement one or more aspects of this disclosure.
  • FIG. 5 illustrates device 502 .
  • the device 502 include, but are not limited to, video devices, media players, set-top boxes, wireless handsets such as mobile telephones and so-called smartphones, personal digital assistants (PDAs), desktop computers, laptop computers, gaming consoles, video conferencing units, tablet computing devices, and the like.
  • PDAs personal digital assistants
  • desktop computers laptop computers
  • gaming consoles video conferencing units
  • tablet computing devices and the like.
  • device 502 may include processor 520 , system memory 518 , and GPU 522 .
  • Processor 520 and GPU 522 may be similar to processing unit 102 shown in FIG. 1
  • system memory 518 may be similar to memory 116 shown in FIG. 1 .
  • Device 502 may also include display processor 524 , transceiver module 526 , user interface 528 , and display 530 .
  • Transceiver module 526 and display processor 524 may both be part of the same integrated circuit (IC) as processor 520 and/or GPU 522 , may both be external to the IC or ICs that include processor 520 and/or GPU 522 , or may be formed in the IC that is external to the IC that includes processor 520 and/or GPU 522 .
  • IC integrated circuit
  • Device 502 may include additional modules or units not shown in FIG. 5 for purposes of clarity.
  • device 502 may include a speaker and a microphone, neither of which are shown in FIG. 5 , to effectuate telephonic communications in examples where device 502 is a mobile wireless telephone, or a speaker where device 502 is a media player.
  • Device 502 may also include a video camera.
  • the various modules and units shown in device 502 may not be necessary in every example of device 502 .
  • user interface 528 and display 530 may be external to device 502 in examples where device 502 is a desktop computer or other device that is equipped to interface with an external user interface or display.
  • Transceiver module 526 may include circuitry to allow wireless or wired communication between device 502 and another device or a network. Transceiver module 526 may include modulators, demodulators, amplifiers and other such circuitry for wired or wireless communication.
  • GPU 522 may store a fully formed image in system memory 518 .
  • Display processor 524 may retrieve the image from system memory 518 and output values that cause the pixels of display 530 to illuminate to display the image.
  • Display 530 may the display of device 502 that displays the image content generated by GPU 522 .
  • Display 530 may be a liquid crystal display (LCD), an organic light emitting diode display (OLED), a cathode ray tube (CRT) display, a plasma display, or another type of display device.
  • LCD liquid crystal display
  • OLED organic light emitting diode display
  • CRT cathode ray tube
  • plasma display or another type of display device.
  • the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium.
  • Computer-readable media may include computer data storage media or communication media including any medium that facilitates transfer of a computer program from one place to another.
  • Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code and/or data structures for implementation of the techniques described in this disclosure.
  • such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer.
  • any connection is properly termed a computer-readable medium.
  • the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave
  • DSL digital subscriber line
  • wireless technologies such as infrared, radio, and microwave
  • Disk and disc includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
  • the code may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry.
  • DSPs digital signal processors
  • ASICs application specific integrated circuits
  • FPGAs field programmable logic arrays
  • processors such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry.
  • DSPs digital signal processors
  • ASICs application specific integrated circuits
  • FPGAs field programmable logic arrays
  • the term “processor” and “processing unit,” as used herein may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described herein.
  • the functionality described herein may be provided within dedicated hardware and/or software modules configured for encoding and decoding
  • the techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC) or a set of ICs (i.e., a chip set).
  • IC integrated circuit
  • a set of ICs i.e., a chip set.
  • Various components, modules or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require realization by different hardware units. Rather, as described above, various units may be combined in a codec hardware unit or provided by a collection of interoperative hardware units, including one or more processors as described above, in conjunction with suitable software and/or firmware.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

A temperature sensor may sense the temperature of a multi-core processor. In response to the temperature of the multi-core processor exceeding a temperature threshold for the multi-core processor, one or more busy processor cores of the multi-core processor may be power collapsed without reducing clock speed of the multi-core processor.

Description

    TECHNICAL FIELD
  • This disclosure relates to temperature management for multi-core processors.
  • BACKGROUND
  • During use, a multi-core processor, such as a multi-core graphics processing unit (GPU) or a multi-core central processing unit (CPU), may dissipate heat as the multi-core processor processess computer instructions. The heat produced by the processor cores may include heat produced by dynamic power dissipation and static leakage. Dynamic power dissipation may be heat generated by the charging and discharging of transistors of the processor as the processor processes computer instructions, and static leakage may be heat generated from gate leakage and other leakage currents that flow when the processors are powered on, even when transistors of the processor are not in use (e.g., when the processors are powered on but idle). Because multi-core processors may be capable of more performance than their thermal envelopes, or the maximum power draw allowed by the processors, thermal mitigation strategies may be implemented to prevent the processors from overheating.
  • SUMMARY
  • In general, aspects of the present disclosure describe techniques for accelerated thermal mitigation of multi-core processors that have exceeded their thermal envelope. A multi-core processor having a temperature that is higher than its temperature threshold can have its temperature return quickly below the temperature threshold while preserving more of its processing power by power collapsing one or more busy processor cores without changing the clock and/or voltage.
  • In one example, a method for thermally mitigating a multi-core processor includes power collapsing one or more busy processor cores of a multi-core processor without reducing clock speed of the multi-core processor in response to a temperature of the multi-core processor exceeding a temperature threshold.
  • In another example, an apparatus includes a multi-core processor and a power control module configured to power collapsing one or more busy processor cores of the multi-core processor without reducing clock speed of the multi-core processor in response to a temperature of the multi-core processor exceeding a temperature threshold.
  • In another example, a an apparatus includes means for sensing a temperature of a multi-core processor and means for power collapsing one or more busy processor cores of the multi-core processor without reducing clock speed of the multi-core processor in response to a temperature of the multi-core processor sensed by the means for sensing the temperature of the multi-core processor exceeding a temperature threshold.
  • In another example, a computer-readable medium, such as a computer-readable storage medium, stores instructions that, when executed, cause one or more programmable processors to power collapse one or more busy processor cores of a multi-core processor without reducing clock speed of the multi-core processor in response to a temperature of the multi-core processor exceeding a temperature threshold.
  • The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.
  • BRIEF DESCRIPTION OF DRAWINGS
  • FIG. 1 is a block diagram illustrating an example processor unit that includes a multi-core processor where one or more busy cores can be stopped for thermal mitigation according to some aspects of the present disclosure.
  • FIG. 2 is a flow chart illustrating an example method of thermally mitigating a multi-core processor according to some aspects of the present disclosure.
  • FIGS. 3A-3D are conceptual diagrams illustrating power collapsing of busy cores of a multi-core processor on a rotating basis in accordance with aspects of the present disclosure.
  • FIGS. 4A-4D are conceptual diagrams illustrating power collapsing of busy cores of a multi-core processor via an intelligent rotating algorithm, in accordance with aspects of the present disclosure.
  • FIG. 5 is a block diagram illustrating an example of a device that may be configured to implement one or more aspects of this disclosure.
  • DETAILED DESCRIPTION
  • Some potential approaches to thermally mitigate a multi-core processor may include reducing the clock rate and the voltage levels for the processor cores when the temperature of the processor exceeds a temperature threshold. Once the temperature of the processor returns to a normal level, the original clock rate and voltage levels for the processor can be restored. However, because the clock for the processor cores of the processor is typically also the clock used by other components of the processor besides the processor cores, such as memories and caches on the processor, reducing the clock rate of the processors will also reduce the performance of these components. In addition, while reducing the clock rate and the voltage levels may reduce dynamic power dissipation, such an approach does not mitigate heat caused by static leakage.
  • Accordingly, aspects of the present disclosure includes power collapsing (i.e., turning off) one or more cores of a multi-core processor when a temperature threshold is exceeded without reducing the clock rate or voltage levels for the processor. The temperature threshold may be lower than an emergency threshold, which may be a temperature threshold above which the processor may be damaged by the heat. The cores that are power collapsed may be busy cores, in that the cores are actively performing instructions. Power collapsing busy cores of the processor reduces both dynamic power dissipation and static leakage while providing increased performance relative to previous approaches of reducing the clock rate and voltage levels because other components of the processor, such as memories and caches, can continue to run at a normal non-reduced clock rate. For example, in a four-core processor where all four cores of the processor are in use, power collapsing two of the cores so that only two of the four cores continue to operate may provide better performance than reducing the clock speed of the processor by 50%. In addition, power collapsing busy cores may allow the processor to cool more quickly so that its temperature returns to below the temperature threshold much faster than the previously proposed solution of reducing the clock rate and voltage because, as discussed above, power collapsing cores reduces both the dynamic power and the static leakage of the disabled cores.
  • FIG. 1 is a block diagram illustrating an example processor unit that includes a multi-core processor where one or more busy cores can be stopped for thermal mitigation according to some aspects of the present disclosure. As shown in FIG. 1, processing unit 102 may include a plurality of processor cores 104A-104N (hereafter “processor cores 104”). In some examples, processor cores 104 may be included in a single integrated circuit die. In other examples, processor cores 104 may be included in multiple integrated circuit dies in a single chip package. Processing unit 102 may be a multi-core microprocessor because processing unit 102 includes a plurality of processor cores 104. Processing unit 102, in some examples, may be a microprocessor, such as a central processing unit (CPU) configured to process instructions of a computer program for execution, or may be a graphics processing unit (GPU) configured to process graphics processing instructions to render a graphical scene at a display (not shown).
  • Each processor core of processor cores 104 may be associated with one or more of caches 112A-112N (hereafter “caches 112”). In some examples, caches 112 may be L1 cache that provides a first level of caching for processor cores 104. Processing unit 102 may also include cache 114. In some examples, cache 114 may be L2 cache that provides a second level of caching for processor cores 104. Processing unit 102 may also be operably coupled to memory 116.
  • Sequencer 106 may be configured to manage and schedule the execution of instructions amongst processor cores 104. Individual processor cores in processor cores 104 may be configured to process instructions in parallel. When a processor core in processor cores 104 is processing instructions, that processor core may be considered busy. In contrast, when a processor core in processor core 104 is not processing any instructions, that processor may be considered idle.
  • Clock 120 may be configured to produce a periodic clock signal at a specified clock speed that regulates the components of processing unit 102. Clock 120 may be operably coupled to processing unit 102 and may transmit the clock signal to processing unit 102. Processing unit 102 may distribute the clock signal produced by clock 120 to its components, such as processor cores 104, caches 112, and cache 114. In some examples, clock 120 may also transmit the clock signal to memory 116. Processing unit 102 may read and write data to memory 116. Caches 112 and cache 114 may cache data that are read from and are to be written to memory 116 for processor cores 104.
  • In accordance with techniques of the present disclosure, processing unit 102 may power collapse one or more busy processor cores of processor cores 104, without reducing the clock speed of clock 120, in response to a temperature of the processing unit 102 exceeding a temperature threshold. Temperature sensor 110 may be configured to sense the temperature of processing unit 102 and may continuously sense the temperature of processing unit 102. Temperature sensor 110, in some examples, may sense the temperature of the portion of the integrated circuit die comprising processor cores 104 or the temperature of the portion of the chip package comprising processor cores 104. Examples of temperature sensor 110 may include a thermistor, which is a resistor having a resistance that varies based on temperature.
  • The temperature threshold for processing unit 102 may be specified based on a variety of factors such as the desired performance of processing unit 102, the desired power consumption of processing unit 102, and the longevity of processing unit 102. For example a relatively higher temperature threshold may be specified if high performance is desired, while a relatively lower temperature may be chosen if power conservation is desired. The temperature threshold for processing unit 102 may be lower than an emergency temperature threshold where there is a great risk for imminent failure of processing unit 102 in the short term if the temperature of processing unit 102 exceeds the temperature threshold.
  • Processing unit 102 may read or otherwise receive the measured temperature from temperature sensor 110 and may compare the measured temperature to the temperature threshold for processing unit 102. If processing unit 102 determines that the measured temperature from temperature sensor 110 exceeds a specified temperature threshold for processing unit 102, processing unit 102 may enable power control module 108 to power collapse one or more busy processor cores of processor cores 104 to cause the temperature of processing unit 102 to decrease.
  • Power collapsing one or more processor cores of processor cores 104 may include power control module 108 turning off power, voltage, and/or current to the one or more processor cores as well as preventing clock signals from reaching the one or more processor cores. Power collapsing one or more processor cores of processor cores 104 may also include power collapsing one or more associated components of the one or more processor cores, such as one or more caches of caches 112 associated with the one or more processor cores. Similarly, power control module 108 may turn off power, voltage, and/or current to the one or more caches of caches 112 associated with the one or more processor cores.
  • To power collapse one or more processor cores of processor cores 104 of processing unit 102, processing unit 102 may communicate an indication of the one or more processor cores to be power collapsed to sequencer 106 and to power control module 108. Sequencer 106 may manage processor cores 104 so that no additional instructions are scheduled for the one or more processor cores to be power collapsed. Sequencer 106 may also save state information for the one or more processor cores' threads, save the one or more processor cores' registers, and flush one or more caches associated with the one or more processor cores. Sequencer 106 may also monitor processor cores 104 to determine when the one or more processor cores to be power collapsed have finished processing their current instructions. Sequencer 106 may, in response to determining that the one or more processor cores to be power collapsed have finished processing their current instructions, send an indication to processing unit 102 that it has finished preparing processor cores 104. In response, processing unit 102 may enable power control module 108 to power collapse the one or more processor cores including power collapsing one or more components of processing unit 102 associated with the one or more processor cores, such as one or more caches of caches 112 associated with the one or more processor cores.
  • While one or more cores of processor cores 104 are power collapsed, the remaining processor cores of processor cores 104 may continue to process computing instructions, and temperature sensor 110 may continue to measure the temperature of processing unit 102. Processing unit 102 may determine if the measured temperature has dropped below the temperature threshold for processing unit 102 and may, in response to the measured temperature being below the temperature threshold for processing unit 102, turn on the power collapsed one or more processor cores. Power control module 108 may turn on power, voltage, and/or current to the power collapsed one or more processor cores and its associated components, and may enable clock signals from reaching the one or more processor cores and its associated components. Power control module 108 may also send an indication to sequencer 106 that the previously power collapsed one or more processor cores, and in response sequencer 106 may schedule computing instructions to be processed by the one or more processor cores.
  • In some examples, processing unit 102 may not include sequencer 106. For example, processing unit 102 may be a CPU that does not include sequencer 106. In this example, an operating system executing on processing unit 102 may determine if one or more processor cores of processor cores 104 has been power collapsed and, in response, may determine not to schedule additional instructions for the power collapsed one or more processor cores. The operating system may also save the operating system state for the power collapsed one or more processor cores' threads, save the contents of registers associated with the power collapsed one or more processor cores, and may flush the caches associated with the power collapsed one or more processor cores.
  • The number of processor cores of processor cores 104 that power control module 108 collapses may depend on balancing the tradeoff between processing speed and how long it takes for the temperature of processing unit 102 to return below the temperature threshold. If processor cores 104 include N processor cores, power control module 108 may power collapse anywhere from 1 to N busy cores based on factors such as the rate of thermal mitigation and the operating mode of processing unit 102.
  • Processing unit 102 may determine which of the busy cores of processor core 104 to power collapse by rotating the sets of processor cores of processor cores 104 that power control module 108 power collapses. For example, if processor core 104 includes four processor cores, and if power control module 108 power collapses two cores each time the temperature of processing unit 102 exceeds the temperature threshold to thermally mitigate the temperature of processing unit 102, power control module 108 may rotate between two sets of two busy cores to alternately power collapse each of the two sets of two busy cores each time the temperature of processing unit 102 exceeds the temperature threshold. If, for example, processor core 104 includes eight processor cores, power control module 108 may power collapse the least recently power collapsed set of two busy cores.
  • As power control module 108 rotates the sets of busy cores of processor cores 104 that it power collapses, processing unit 102 may determine the time it takes for the temperature of processing unit 102 to return below the temperature threshold, and may associate the time elapsed before the temperature of processing unit 102 returns below the temperature threshold with the sets of busy cores of processor cores 104 that were power collapsed at the time. In this way, processing unit 102 may identify which set or sets of busy cores were power collapsed when the temperature of processing unit 102 took the least amount of time to return below the temperature threshold, and processing unit 102 may enable power control module 108 to power collapse the identified set or sets of busy cores to power collapse in response to the temperature of processing unit 102 exceeding the temperature threshold.
  • For example, processor cores 104 may include eight cores and power control module 108 may power collapse sets of two cores at a time. If processing unit 102 identifies two sets of two cores each that, when power collapsed, produces the shortest elapsed time for the temperature of processing unit 102 to cool below the temperature threshold, power control module 108 may alternately power collapse the two identified sets of cores each time the temperature of processing unit 102 exceeds the temperature threshold.
  • Processing unit 102 may also determine which of the busy cores of processor core 104 based at least in part on power leakage characteristics of busy processor cores of processor cores 104, so that the cores that have the most static leakage may be chosen to be power collapsed. For example, additional temperature sensors (not shown) may be placed on processing unit 102 to measure the heat dissipation and temperature of each core of processor cores 104 as processor cores 104 are in use. Based on the temperature of the individual cores of processor cores 104, power control module 108 may power collapse the cores of processor cores 104 having the highest temperature. In another example, a technician or other personnel may, after fabrication of processor cores 104, measure the static leakage of each core of processor cores 104, and such information may be used by processing unit 102 in selecting the busy cores of processor cores 104 that power control module 108 power collapses based on the static leakage of the processor cores.
  • To power collapse one or more processor cores of processor cores 104, processor unit 102 may indicate to sequencer 106 the processor cores of processor cores 104 to be power collapsed by power control module 108. In response, sequencer 106 may schedule the instructions to be performed by processor cores 104 so that the processor cores of processor cores 104 to be collapsed by power control module 108 do not receive any additional instructions to process besides the instructions currently being processed by those processor cores.
  • In response to sequencer 106 determining that the processor cores of processor cores 104 to be power collapsed by power control module 108 have finished processing their current instructions, sequencer 106 may send an indication to processing unit 102 that those processor cores of processor cores 104 can be power collapsed. In response to receiving the indication from sequencer 106, processing unit 102 may enable power control module 108 to shut off power to the processor cores of processor cores 104 that processing unit 102 had previously determined to power collapse.
  • FIG. 2 is a flow chart illustrating an example method of thermally mitigating a multi-core processor according to some aspects of the present disclosure. As shown in FIG. 2, processor cores 104 of a multi-core processor 102 may be busy processing instructions to execute a software application, processing graphics instructions to render a graphical scene, processing mathematical operations on a series of data samples for a digital signal processor, and the like (202). As processor cores 104 processes instructions, processor cores 104 may dissipate heat, including heat produced by dynamic power dissipation and heat from static leakage of processor cores 104.
  • Temperature sensor 110 may measure the temperature of multi-core processor 102 and may communicate the measured temperature to power control module 108, and power control module 108 may determine if the measured temperature of multi-core processor 102 is higher than a threshold temperature (204). If the measured temperature of multi-core processor 102 does not exceed the threshold temperature, processor cores 104 of multi-core processor 102 may continue to process instructions (202).
  • If the measured temperature of multi-core processor 102 does exceed the threshold temperature, multi-core processor 102 may power collapse one or more of the processor cores 104 (206). Power collapsing a processor core may include power collapsing supporting hardware components associated with the processor core, such as caches, texture pipelines, rendering buffers, and the like for the power collapsed processor core.
  • Processing unit 102 may employ intelligent strategies to determine which processor cores of processor cores 104 are power collapsed. In one strategy, processing unit 102 may rotate the processor cores of processor cores 104 that are power collapsed each time the temperature of processing unit 102 exceeds its temperature threshold. For example, processor cores 104 may comprise four processor cores and a set of two processor cores may be power collapsed each time the temperature exceeds the temperature threshold. Processing unit 102 may, in response to its temperature exceeding its temperature threshold, power collapse a first set of two processor cores of processor cores 104. The next time processing unit 102's temperature exceeds its temperature threshold, processing unit 102 may collapse a second set of two processor cores of processor cores 104 that are different than the first set of two processor cores 104. In other strategies, processing unit 102 may determine to power collapse the processor core or processor cores of processor cores 104 that have the greatest amount of static leakage, or processing unit 102 may determine to power collapse the processor core or processor cores of processor cores 104 that drops in temperature the fastest after being power collapsed.
  • The reduced set of processor cores 104 that remains powered on may continue to process instructions (208), and temperature sensor 110 may continue to measure the temperature of multi-core processor 102. Temperature sensor 110 may communicate the measured temperature to power control module 108, and power control module 108 may determine if the measured temperature of multi-core processor 102 is lower than a threshold temperature (210). If the measured temperature of multi-core processor 102 continues to exceed the threshold temperature, the reduced set of processor cores 104 remains powered on may continue to process instructions (208). If the measured temperature of multi-core processor 102 no longer exceeds the threshold temperature, power control module 108 may power on the previously power collapsed processor cores of processor cores 104 (212), and the full set of processor cores of processor cores 104 may process instructions (202).
  • FIGS. 3A-3D are conceptual diagrams illustrating power collapsing of busy cores of a multi-core processor on a rotating basis amongst the cores in accordance with aspects of the present disclosure. In the example shown in FIGS. 3A-3D, processor cores 104 may comprise eight processor cores 104A-104H, and two of the processor cores may be shut off at a time when the temperature of the processing unit exceeds the temperature threshold. As shown in FIG. 3A, when the temperature of processing unit 102 comprising processor cores 104 exceeds a temperature threshold, processing unit 102 may turn off two processor cores 104A and 104B. As shown in FIG. 3B, after processing unit 102 turns processor cores 104A and 104B back on in response to its temperature falling below the temperature threshold, in the next instance of when the temperature of processing unit 102 exceeds the temperature threshold, the processing unit 102 may rotate the processor cores that are turned off for thermal mitigation by turning off two processor cores 104C and 104D. Similarly, as shown in FIG. 3C, after processing unit 102 turns processor cores 104C and 104D back on in response to its temperature falling below the temperature threshold, in the next instance of when the temperature of processing unit 102 exceeds the temperature threshold, the processing unit 102 may rotate the processor cores that are turned off for thermal mitigation by turning off two processor cores 104E and 104F. Likewise, as shown in FIG. 3D, after processing unit 102 turns processor cores 104E and 104F back on in response to its temperature falling below the temperature threshold, in the next instance of when the temperature of processing unit 102 exceeds the temperature threshold, the processing unit 102 may rotate the processor cores that are turned off for thermal mitigation by turning off two processor cores 104G and 104H.
  • FIGS. 4A-4D are conceptual diagrams illustrating power collapsing of busy cores of a multi-core processor via an intelligent rotating algorithm, in accordance with aspects of the present disclosure. Processing unit 102 may determine which processor cores or sets of processor cores may, when turned off, cool down faster compared to the other processor cores of processor cores 104. Upon processing unit 102 making such a determination of the cool down speed of the processor cores, processing unit 102 may shut off those processor cores in response to the temperature of processing unit 102 exceeding the temperature threshold.
  • In the example shown in FIGS. 4A-4D, the set of processor cores 104A and 104B and the set of processor cores 104E and 104F are the sets of processor cores having temperatures that decrease the fastest when they are switched from being on and busy to being off. Based at least in part on that information, processing unit 102 may rotate between turning off the set of processor cores 104A and 104B and the set of processor cores 104C and 104D if the temperature of processing unit 102 exceeds the temperature threshold. As shown in FIG. 4A, when the temperature of processing unit 102 comprising processor cores 104 exceeds the temperature threshold, processing unit 102 may turn off a first set of two processor cores 104A and 104B. As shown in FIG. 4B, after processing unit 102 turns processor cores 104A and 104B back on in response to processing unit 102's temperature falling below the temperature threshold, in the next instance of when the temperature of processing unit 102 exceeds the temperature threshold, the processing unit 102 may turning off a second set of two processor cores 104E and 104F. As shown in FIG. 4C, because processing unit 102 determines that sets of processor cores 104A and 104B and processor cores 104E and 104F are the most efficient sets of processor cores at cooling down upon being turned off, after processing unit 102 turns processor cores 104E and 104F back on in response to processing unit 102's temperature falling below the temperature threshold, the processing unit 102 may rotate back to turning off processor cores 104A and 104B in the next instance of when the temperature of processing unit 102 exceeds the temperature threshold. Similarly, as shown in FIG. 4D, after processing unit 102 turns processor cores 104E and 104F back on in response to its temperature falling below the temperature threshold, in the next instance of when the temperature of processing unit 102 exceeds the temperature threshold, the processing unit 102 may rotate the processor cores that are turned off for thermal mitigation by turning off two processor cores 104A and 104B. As such, by determining the processor cores that cool down the fastest after being power collapsed, and by power collapsing the sets of processor cores that cool down the fastest, processing unit 102 may enable its temperature to more quickly drop below the temperature threshold.
  • FIG. 5 is a block diagram illustrating an example of a device that may be configured to implement one or more aspects of this disclosure. For example, FIG. 5 illustrates device 502. Examples of the device 502 include, but are not limited to, video devices, media players, set-top boxes, wireless handsets such as mobile telephones and so-called smartphones, personal digital assistants (PDAs), desktop computers, laptop computers, gaming consoles, video conferencing units, tablet computing devices, and the like.
  • In the example of FIG. 5, device 502 may include processor 520, system memory 518, and GPU 522. Processor 520 and GPU 522 may be similar to processing unit 102 shown in FIG. 1, and system memory 518 may be similar to memory 116 shown in FIG. 1. Device 502 may also include display processor 524, transceiver module 526, user interface 528, and display 530. Transceiver module 526 and display processor 524 may both be part of the same integrated circuit (IC) as processor 520 and/or GPU 522, may both be external to the IC or ICs that include processor 520 and/or GPU 522, or may be formed in the IC that is external to the IC that includes processor 520 and/or GPU 522.
  • Device 502 may include additional modules or units not shown in FIG. 5 for purposes of clarity. For example, device 502 may include a speaker and a microphone, neither of which are shown in FIG. 5, to effectuate telephonic communications in examples where device 502 is a mobile wireless telephone, or a speaker where device 502 is a media player. Device 502 may also include a video camera. Furthermore, the various modules and units shown in device 502 may not be necessary in every example of device 502. For example, user interface 528 and display 530 may be external to device 502 in examples where device 502 is a desktop computer or other device that is equipped to interface with an external user interface or display.
  • Examples of user interface 528 include, but are not limited to, a trackball, a mouse, a keyboard, and other types of input devices. User interface 528 may also be a touch screen and may be incorporated as a part of display 530. Transceiver module 526 may include circuitry to allow wireless or wired communication between device 502 and another device or a network. Transceiver module 526 may include modulators, demodulators, amplifiers and other such circuitry for wired or wireless communication.
  • In some examples, GPU 522 may store a fully formed image in system memory 518. Display processor 524 may retrieve the image from system memory 518 and output values that cause the pixels of display 530 to illuminate to display the image. Display 530 may the display of device 502 that displays the image content generated by GPU 522. Display 530 may be a liquid crystal display (LCD), an organic light emitting diode display (OLED), a cathode ray tube (CRT) display, a plasma display, or another type of display device.
  • In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media may include computer data storage media or communication media including any medium that facilitates transfer of a computer program from one place to another. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code and/or data structures for implementation of the techniques described in this disclosure. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
  • The code may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Accordingly, the term “processor” and “processing unit,” as used herein may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within dedicated hardware and/or software modules configured for encoding and decoding, or incorporated in a combined codec. Also, the techniques could be fully implemented in one or more circuits or logic elements.
  • The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC) or a set of ICs (i.e., a chip set). Various components, modules or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require realization by different hardware units. Rather, as described above, various units may be combined in a codec hardware unit or provided by a collection of interoperative hardware units, including one or more processors as described above, in conjunction with suitable software and/or firmware.
  • Various examples have been described. These and other examples are within the scope of the following claims.

Claims (30)

1. A method for thermally mitigating a multi-core processor, comprising:
power collapsing one or more busy processor cores of a multi-core processor without reducing clock speed of the multi-core processor in response to a temperature of the multi-core processor exceeding a temperature threshold.
2. The method of claim 1, further comprising:
determining the one or more busy processor cores of the multi-core processor to power collapse on a rotating basis amongst cores of the multi-core processor.
3. The method of claim 1, further comprising:
determining the one or more busy processor cores of the multi-core processor to power collapse based on power leakage characteristics of the one or more busy processor cores of the multi-core processor.
4. The method of claim 1, further comprising:
determining the one or more busy processor cores of the multi-core processor to power collapse based on a cool down speed of the one or more busy processor cores of the multi-core processor.
5. The method of claim 1, wherein the temperature threshold is less than an emergency temperature threshold.
6. The method of claim 1, wherein power collapsing one or more busy processor cores of the multi-core processor further comprises:
determining, by a sequencer, not to schedule instructions for the one or more busy processor cores to process.
7. The method of claim 1, wherein power collapsing one or more busy processor cores further comprises:
power collapsing one or more caches associated with the one or more busy processor cores.
8. The method of claim 1, further comprising:
sensing the temperature of the multi-core processor.
9. An apparatus comprising:
a multi-core processor; and
a power control module configured to power collapse one or more busy processor cores of the multi-core processor without reducing clock speed of the multi-core processor in response to a temperature of the multi-core processor exceeding a temperature threshold.
10. The apparatus of claim 9, wherein the power control module is further configured to determine the one or more busy processor cores of the multi-core processor to power collapse on a rotating basis amongst cores of the multi-core processor.
11. The apparatus of claim 9, wherein the power control module is further configured to determine the one or more busy processor cores of the multi-core processor to power collapse based on power leakage characteristics of the one or more busy processor cores of the multi-core processor.
12. The apparatus of claim 9, wherein the power control module is further configured to determine the one or more busy processor cores of the multi-core processor to power collapse based on a cool down speed of the one or more busy processor cores of the multi-core processor.
13. The apparatus of claim 9, wherein the temperature threshold is less than an emergency temperature threshold.
14. The apparatus of claim 9, further comprising:
a sequencer configured to determine not to schedule instructions for the one or more busy processor cores to process.
15. The apparatus of claim 9, wherein power collapse one or more busy processor cores further comprises:
power collapse one or more caches associated with the one or more busy processor cores.
16. The apparatus of claim 9, further comprising:
a temperature sensor configured to sense the temperature of the multi-core processor.
17. An apparatus comprising:
means for sensing a temperature of a multi-core processor;
means for power collapsing one or more busy processor cores of the multi-core processor without reducing clock speed of the multi-core processor in response to a temperature of the multi-core processor sensed by the means for sensing the temperature of the multi-core processor exceeding a temperature threshold.
18. The apparatus of claim 17, further comprising:
means for determining the one or more busy processor cores of the multi-core processor to power collapse on a rotating basis amongst cores of the multi-core processor.
19. The apparatus of claim 17, further comprising:
means for determining the one or more busy processor cores of the multi-core processor to power collapse based on power leakage characteristics of the one or more busy processor cores of the multi-core processor.
20. The apparatus of claim 17, further comprising:
means for determining the one or more busy processor cores of the multi-core processor to power collapse based on a cool down speed of the one or more busy processor cores of the multi-core processor.
21. The apparatus of claim 17, wherein the temperature threshold is less than an emergency temperature threshold.
22. The apparatus of claim 17, wherein the means for power collapsing one or more busy processor cores of the multi-core processor further comprises:
means for determining not to schedule instructions for the one or more busy processor cores to process.
23. The apparatus of claim 17, wherein the means for power collapsing one or more busy processor cores further comprises:
means for power collapsing one or more caches associated with the one or more busy processor cores.
24. A computer-readable storage medium storing instructions that, when executed, cause one or more a programmable processors to:
power collapse one or more busy processor cores of a multi-core processor without reducing clock speed of the multi-core processor in response to a temperature of the multi-core processor exceeding a temperature threshold.
25. The computer-readable storage medium of claim 24, wherein the instructions further cause the one or more programmable processors to:
determine the one or more busy processor cores of the multi-core processor to power collapse on a rotating basis amongst cores of the multi-core processor.
26. The computer-readable storage medium of claim 24, wherein the instructions further cause the one or more programmable processors to:
determine the one or more busy processor cores of the multi-core processor to power collapse based on power leakage characteristics of the one or more busy processor cores of the multi-core processor.
27. The computer-readable storage medium of claim 24, wherein the instructions further cause the one or more programmable processors to:
determine the one or more busy processor cores of the multi-core processor to power collapse based on a cool down speed of the one or more busy processor cores of the multi-core processor.
28. The computer-readable storage medium of claim 24, wherein the temperature threshold is less than an emergency temperature threshold.
29. The computer-readable storage medium of claim 24, wherein the instructions further cause the one or more programmable processors to:
determine, by a sequencer, not to schedule instructions for the one or more busy processor cores to process.
30. The computer-readable storage medium of claim 24, wherein the instructions further cause the one or more programmable processors to:
power collapse one or more caches associated with the one or more busy processor cores.
US14/052,191 2013-10-11 2013-10-11 Accelerated thermal mitigation for multi-core processors Expired - Fee Related US9342135B2 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
US14/052,191 US9342135B2 (en) 2013-10-11 2013-10-11 Accelerated thermal mitigation for multi-core processors
KR1020167009929A KR101726552B1 (en) 2013-10-11 2014-10-03 Accelerated thermal mitigation for multi-core processors
JP2016521602A JP6077182B2 (en) 2013-10-11 2014-10-03 Accelerated thermal relaxation for multi-core processors
CN201480053652.XA CN105579926B (en) 2013-10-11 2014-10-03 The acceleration heat of multi-core processor mitigates
EP14787330.1A EP3055751A1 (en) 2013-10-11 2014-10-03 Accelerated thermal mitigation for multi-core processors
PCT/US2014/059113 WO2015054072A1 (en) 2013-10-11 2014-10-03 Accelerated thermal mitigation for multi-core processors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/052,191 US9342135B2 (en) 2013-10-11 2013-10-11 Accelerated thermal mitigation for multi-core processors

Publications (2)

Publication Number Publication Date
US20150106640A1 true US20150106640A1 (en) 2015-04-16
US9342135B2 US9342135B2 (en) 2016-05-17

Family

ID=51790859

Family Applications (1)

Application Number Title Priority Date Filing Date
US14/052,191 Expired - Fee Related US9342135B2 (en) 2013-10-11 2013-10-11 Accelerated thermal mitigation for multi-core processors

Country Status (6)

Country Link
US (1) US9342135B2 (en)
EP (1) EP3055751A1 (en)
JP (1) JP6077182B2 (en)
KR (1) KR101726552B1 (en)
CN (1) CN105579926B (en)
WO (1) WO2015054072A1 (en)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140277815A1 (en) * 2013-03-14 2014-09-18 Arizona Board Of Regents For And On Behalf Of Arizona State University Processor control system
US20150149800A1 (en) * 2013-11-27 2015-05-28 Alexander Gendler Performing an operating frequency change using a dynamic clock control technique
CN105045668A (en) * 2015-07-28 2015-11-11 深圳市万普拉斯科技有限公司 Operational resource heat dissipation control method and operational control system
US20160062448A1 (en) * 2014-09-02 2016-03-03 Jinpyo PARK Semiconductor device, semiconductor system, and method for controlling the same
US20160124476A1 (en) * 2014-10-30 2016-05-05 Qualcomm Incorporated Thermal mitigation of multi-core processor
US20160179180A1 (en) * 2014-12-22 2016-06-23 Qualcomm Incorporated Thermal mitigation in devices with multiple processing units
US20170251085A1 (en) * 2016-02-26 2017-08-31 Essential Products, Inc. Titanium mobile phone chassis and methods of making and using same
US9933825B2 (en) 2013-03-14 2018-04-03 Arizona Board Of Regents For And On Behalf Of Arizona State University Determining parameters that affect processor energy efficiency
US10021226B2 (en) 2016-02-26 2018-07-10 Essential Products, Inc. Display cover mounting
EP3330830A4 (en) * 2015-07-29 2019-07-10 ZTE Corporation Method and device for controlling hot plug operation of cpu in mobile terminal
US20190377403A1 (en) * 2018-06-11 2019-12-12 Lucid Circuit, Inc. Systems and methods for autonomous hardware compute resiliency
US10755201B2 (en) 2018-02-14 2020-08-25 Lucid Circuit, Inc. Systems and methods for data collection and analysis at the edge
US10896146B2 (en) 2018-11-16 2021-01-19 International Business Machines Corporation Reliability-aware runtime optimal processor configuration
US11119830B2 (en) * 2017-12-18 2021-09-14 International Business Machines Corporation Thread migration and shared cache fencing based on processor core temperature
US11245520B2 (en) 2018-02-14 2022-02-08 Lucid Circuit, Inc. Systems and methods for generating identifying information based on semiconductor manufacturing process variations
US11385690B2 (en) * 2019-05-08 2022-07-12 Samsung Electronics Co., Ltd. Electronic device for switching between communication channels and control method thereof
EP3430496B1 (en) * 2016-03-17 2024-01-10 Qualcomm Incorporated System and method for intelligent thermal management in a system on a chip having a heterogeneous cluster architecture

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10175731B2 (en) * 2016-06-17 2019-01-08 Microsoft Technology Licensing, Llc Shared cooling for thermally connected components in electronic devices
JP6872440B2 (en) * 2017-06-30 2021-05-19 ルネサスエレクトロニクス株式会社 Semiconductor devices and control methods for semiconductor devices
CN109388494A (en) * 2018-10-29 2019-02-26 济南浪潮高新科技投资发展有限公司 A kind of method that multi-core network controller dynamic energy consumption is adjusted

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451332B2 (en) * 2003-08-15 2008-11-11 Apple Inc. Methods and apparatuses for controlling the temperature of a data processing system
US7584369B2 (en) * 2006-07-26 2009-09-01 International Business Machines Corporation Method and apparatus for monitoring and controlling heat generation in a multi-core processor
US7617403B2 (en) * 2006-07-26 2009-11-10 International Business Machines Corporation Method and apparatus for controlling heat generation in a multi-core processor
US20110093733A1 (en) * 2009-10-20 2011-04-21 Ezekiel John Joseph Kruglick Power Channel Monitor For A Multicore Processor
US20110145605A1 (en) * 2009-12-16 2011-06-16 Sumit Sur System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US8214660B2 (en) * 2006-07-26 2012-07-03 International Business Machines Corporation Structure for an apparatus for monitoring and controlling heat generation in a multi-core processor
US20130086395A1 (en) * 2011-09-30 2013-04-04 Qualcomm Incorporated Multi-Core Microprocessor Reliability Optimization
US20140075223A1 (en) * 2012-09-12 2014-03-13 Htc Corporation Electronic device with power management mechanism and power management method thereof

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3914230B2 (en) 2004-11-04 2007-05-16 株式会社東芝 Processor system and control method thereof
JP2008026948A (en) * 2006-07-18 2008-02-07 Renesas Technology Corp Semiconductor integrated circuit
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US7962774B2 (en) 2007-10-04 2011-06-14 Wisconsin Alumni Research Foundation Over-provisioned multicore processor
US8064197B2 (en) 2009-05-22 2011-11-22 Advanced Micro Devices, Inc. Heat management using power management information
US8571847B2 (en) 2010-01-08 2013-10-29 International Business Machines Corporation Efficiency of static core turn-off in a system-on-a-chip with variation
US8495395B2 (en) * 2010-09-14 2013-07-23 Advanced Micro Devices Mechanism for controlling power consumption in a processing node
US8612781B2 (en) 2010-12-14 2013-12-17 Advanced Micro Devices, Inc. Method and apparatus for application of power density multipliers optimally in a multicore system
US8768666B2 (en) 2011-01-06 2014-07-01 Qualcomm Incorporated Method and system for controlling thermal load distribution in a portable computing device
US8595525B2 (en) 2011-09-22 2013-11-26 Qualcomm Incorporated On-chip thermal management techniques using inter-processor time dependent power density data for indentification of thermal aggressors
JP5895444B2 (en) * 2011-10-20 2016-03-30 セイコーエプソン株式会社 Printing device
WO2013079946A2 (en) 2011-11-29 2013-06-06 Andrew Michael Wells Dispensing container
US9122464B2 (en) 2011-12-22 2015-09-01 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including energy efficient processor thermal throttling using deep power down mode

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451332B2 (en) * 2003-08-15 2008-11-11 Apple Inc. Methods and apparatuses for controlling the temperature of a data processing system
US7584369B2 (en) * 2006-07-26 2009-09-01 International Business Machines Corporation Method and apparatus for monitoring and controlling heat generation in a multi-core processor
US7617403B2 (en) * 2006-07-26 2009-11-10 International Business Machines Corporation Method and apparatus for controlling heat generation in a multi-core processor
US8214660B2 (en) * 2006-07-26 2012-07-03 International Business Machines Corporation Structure for an apparatus for monitoring and controlling heat generation in a multi-core processor
US20110093733A1 (en) * 2009-10-20 2011-04-21 Ezekiel John Joseph Kruglick Power Channel Monitor For A Multicore Processor
US20110145605A1 (en) * 2009-12-16 2011-06-16 Sumit Sur System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US20130086395A1 (en) * 2011-09-30 2013-04-04 Qualcomm Incorporated Multi-Core Microprocessor Reliability Optimization
US20140075223A1 (en) * 2012-09-12 2014-03-13 Htc Corporation Electronic device with power management mechanism and power management method thereof

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140277815A1 (en) * 2013-03-14 2014-09-18 Arizona Board Of Regents For And On Behalf Of Arizona State University Processor control system
US10133323B2 (en) * 2013-03-14 2018-11-20 Arizona Board Of Regents For And On Behalf Of Arizona State University Processor control system
US9933825B2 (en) 2013-03-14 2018-04-03 Arizona Board Of Regents For And On Behalf Of Arizona State University Determining parameters that affect processor energy efficiency
US20150149800A1 (en) * 2013-11-27 2015-05-28 Alexander Gendler Performing an operating frequency change using a dynamic clock control technique
US9829940B2 (en) * 2014-09-02 2017-11-28 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system, and method for controlling the same
US20160062448A1 (en) * 2014-09-02 2016-03-03 Jinpyo PARK Semiconductor device, semiconductor system, and method for controlling the same
US9582052B2 (en) * 2014-10-30 2017-02-28 Qualcomm Incorporated Thermal mitigation of multi-core processor
US20160124476A1 (en) * 2014-10-30 2016-05-05 Qualcomm Incorporated Thermal mitigation of multi-core processor
US10114443B2 (en) 2014-10-30 2018-10-30 Qualcomm Incorporated Thermal mitigation of multi-core processor
US20160179180A1 (en) * 2014-12-22 2016-06-23 Qualcomm Incorporated Thermal mitigation in devices with multiple processing units
US10528117B2 (en) * 2014-12-22 2020-01-07 Qualcomm Incorporated Thermal mitigation in devices with multiple processing units
US11340689B2 (en) 2014-12-22 2022-05-24 Qualcomm Incorporated Thermal mitigation in devices with multiple processing units
CN105045668A (en) * 2015-07-28 2015-11-11 深圳市万普拉斯科技有限公司 Operational resource heat dissipation control method and operational control system
US10488900B2 (en) 2015-07-28 2019-11-26 Oneplus Technology (Shenzhen) Co., Ltd. Heat dissipation control method for operation resources, operation control system, and storage medium
EP3330830A4 (en) * 2015-07-29 2019-07-10 ZTE Corporation Method and device for controlling hot plug operation of cpu in mobile terminal
US10599195B2 (en) 2015-07-29 2020-03-24 Zte Corporation Method and apparatus for controlling hot plug operation of CPU in mobile terminal
US20170251085A1 (en) * 2016-02-26 2017-08-31 Essential Products, Inc. Titanium mobile phone chassis and methods of making and using same
US10021226B2 (en) 2016-02-26 2018-07-10 Essential Products, Inc. Display cover mounting
EP3430496B1 (en) * 2016-03-17 2024-01-10 Qualcomm Incorporated System and method for intelligent thermal management in a system on a chip having a heterogeneous cluster architecture
US11119830B2 (en) * 2017-12-18 2021-09-14 International Business Machines Corporation Thread migration and shared cache fencing based on processor core temperature
US10755201B2 (en) 2018-02-14 2020-08-25 Lucid Circuit, Inc. Systems and methods for data collection and analysis at the edge
US11245520B2 (en) 2018-02-14 2022-02-08 Lucid Circuit, Inc. Systems and methods for generating identifying information based on semiconductor manufacturing process variations
US20190377403A1 (en) * 2018-06-11 2019-12-12 Lucid Circuit, Inc. Systems and methods for autonomous hardware compute resiliency
US10901493B2 (en) * 2018-06-11 2021-01-26 Lucid Circuit, Inc. Systems and methods for autonomous hardware compute resiliency
US20210132680A1 (en) * 2018-06-11 2021-05-06 Lucid Circuit, Inc. Systems and methods for autonomous hardware compute resiliency
US11644888B2 (en) * 2018-06-11 2023-05-09 Lucid Circuit, Inc. Systems and methods for autonomous hardware compute resiliency
US20230229226A1 (en) * 2018-06-11 2023-07-20 Michel D. Sika Systems and methods for autonomous hardware compute resiliency
US10896146B2 (en) 2018-11-16 2021-01-19 International Business Machines Corporation Reliability-aware runtime optimal processor configuration
US11385690B2 (en) * 2019-05-08 2022-07-12 Samsung Electronics Co., Ltd. Electronic device for switching between communication channels and control method thereof

Also Published As

Publication number Publication date
JP6077182B2 (en) 2017-02-08
EP3055751A1 (en) 2016-08-17
CN105579926A (en) 2016-05-11
CN105579926B (en) 2019-04-26
JP2016534423A (en) 2016-11-04
US9342135B2 (en) 2016-05-17
KR20160067123A (en) 2016-06-13
KR101726552B1 (en) 2017-04-27
WO2015054072A1 (en) 2015-04-16

Similar Documents

Publication Publication Date Title
US9342135B2 (en) Accelerated thermal mitigation for multi-core processors
CN107851042B (en) Using command stream hints to characterize GPU workload and power management
JP6005895B1 (en) Intelligent multi-core control for optimal performance per watt
TWI528169B (en) Memory power savings in idle display case
US9213379B2 (en) Distributed fan control
US9619859B2 (en) Techniques for efficient GPU triangle list adjacency detection and handling
US9916104B2 (en) Techniques for entry to a lower power state for a memory device
JP2009175704A (en) Display system and method of reducing power consumption in the display system
KR101944378B1 (en) A method of dynamic cache sizing in a memeory device and a processor comprising the method thereof
TWI744289B (en) A central processing unit (cpu)-based system and method for providing memory bandwidth compression using multiple last-level cache (llc) lines
US20160188490A1 (en) Cost-aware page swap and replacement in a memory
US9990287B2 (en) Apparatus and method for memory-hierarchy aware producer-consumer instruction
TW201926060A (en) Power-conserving cache memory usage
US9927862B2 (en) Variable precision in hardware pipelines for power conservation
CN111209116A (en) Method and device for distributing video memory space and computer storage medium
US9798369B2 (en) Indicating critical battery status in mobile devices
CN104750444A (en) Adaptive partial screen update with dynamic backlight control capability
US9286237B2 (en) Memory imbalance prediction based cache management
TWI772438B (en) System and method for dynamic buffer sizing in a computing device

Legal Events

Date Code Title Description
AS Assignment

Owner name: QUALCOMM INCORPORATED, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BRACKMAN, DAVID SAMUEL;SETHI, SUMEET SINGH;REEL/FRAME:031427/0438

Effective date: 20131015

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Expired due to failure to pay maintenance fee

Effective date: 20200517