WO2012129147A2 - Managing power consumption in a multi-core processor - Google Patents

Managing power consumption in a multi-core processor Download PDF

Info

Publication number
WO2012129147A2
WO2012129147A2 PCT/US2012/029604 US2012029604W WO2012129147A2 WO 2012129147 A2 WO2012129147 A2 WO 2012129147A2 US 2012029604 W US2012029604 W US 2012029604W WO 2012129147 A2 WO2012129147 A2 WO 2012129147A2
Authority
WO
WIPO (PCT)
Prior art keywords
value
activity
area
throttling
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.)
Ceased
Application number
PCT/US2012/029604
Other languages
French (fr)
Other versions
WO2012129147A3 (en
Inventor
Eric FETZER
Reid J. Reidlinger
Don SOLTIS
William J. Bowhill
Satish SHRIMALI
Krishnakanth Sistla
Efraim Rotem
Rakesh Kumar
Vivek Garg
Alon Naveh
Lokesh SHARMA
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Priority to JP2014501164A priority Critical patent/JP2014514641A/en
Priority to GB1316089.0A priority patent/GB2503367B/en
Priority to KR1020147036961A priority patent/KR101591811B1/en
Priority to CN201280020735.XA priority patent/CN103492976B/en
Priority to KR1020137024802A priority patent/KR101515318B1/en
Priority to DE112012001358.1T priority patent/DE112012001358B4/en
Publication of WO2012129147A2 publication Critical patent/WO2012129147A2/en
Publication of WO2012129147A3 publication Critical patent/WO2012129147A3/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Definitions

  • a computer system may comprise a processor, which may include a core area and an uncore area.
  • the core area may include one or more processing cores, caches (L1 and L2, for example), line-fill buffers and the uncore area may comprise last level caches, a memory controller, and such other blocks.
  • the processor power management techniques aim at reducing the power consumed by the core area.
  • an activity factor in the core area is measured and a power value (actual power consumption value) corresponding to the activity factor is determined. Then, voltage and/or frequency operating point may be varied based on a
  • the power management technique may lower the voltage and/or frequency operating point after detecting that the actual power consumption value is equal to or higher than the allowable power value. However, a specific amount of time would be incurred between the point at which the high activity is detected and the point at which the voltage and/or frequency operating point is actually lowered. In between these two points, the computer system may operate in high power state and high activity state as well. To avoid such a situation, the processor (or the part) has to be binned at a lower voltage and frequency point (V/F) point.
  • V/F voltage and frequency point
  • the voltage and/or frequency operating points may be selected based on the processor power saving (P) states and boost modes, which may modulate the voltage and/or frequency operating points based on the actual power consumed value.
  • P processor power saving
  • boost modes which may modulate the voltage and/or frequency operating points based on the actual power consumed value.
  • the above approaches rely on voltage operation range to increase or decrease the power and performance through frequency. With each new generation of processors, the voltage range is reduced as VCCmax is lowered for gate-oxide reliability while VCCmin remains almost constant. The above approaches are reactive in nature to the over power condition.
  • the power management techniques discussed above respond only after the processor has reached a high thermal or power state. As a result, the time taken (or latency) to actually change the voltage and/or frequency operating point in response to a change in the thermal or power state is substantial and there is a need to reduce the latency.
  • the modern processors are targeted for many core designs and these cores are coupled to a common uncore area.
  • the uncore areas within the processor is growing larger in size.
  • the uncore areas in modern processors may include many functional and logical blocks (e.g., memory controller, last level caches, home agents, routing agents, caching agents, power control units, interfaces, and such other blocks) and may typically operate on a different power plane than that of the core area.
  • these processors need to consume low idle power, for example, to reduce the total energy consumed and/or improving the battery life.
  • the power consumed by such larger uncore area has reached
  • processors are designed for multi-socket configuration with distributed memory coupled to the multiple sockets.
  • power optimization techniques such as voltage and frequency scaling may affect the snoops or memory access response to the peer sockets or system agent response latency.
  • the current processors do not use voltage/frequency scaling techniques to conserve power in the uncore area while the core area in package C-state.
  • the processor package idle power is as high as 20-40% of the thermal design power (TDP) power.
  • TDP thermal design power
  • FIG. 1 illustrates a processor 100, which supports activity based power saving technique in the core area and the load-line IR drop based power saving technique in the uncore area in accordance with one embodiment.
  • FIG. 2 illustrates the core area of the processor modeled in terms of total capacitance (Ctotal) and dynamic capacitance (Cdyn) in accordance with one embodiment.
  • FIG. 3 illustrates a plot of variation of Cdyn with reference to change in the workload of the applications in accordance with one embodiment.
  • FIG. 4 illustrates a flow-chart, which depicts an activity based power saving technique used in the core area in accordance with one embodiment.
  • FIG. 5 illustrates a block diagram used to implement the activity based power saving technique used in the core area in accordance with one embodiment.
  • FIG. 6 illustrates a block diagram of an activity accumulation logic used to implement the activity based power saving technique used in the core area in accordance with one embodiment.
  • FIG. 7 is a graph, which illustrates an effect of the activity based power saving technique on the instantaneous activity in the core area in accordance with one embodiment.
  • FIG. 8 is a graph, which illustrates an effect of the activity based power saving technique on the average activity in the core area in accordance with one embodiment.
  • FIG. 9 is a flow-chart, which illustrates a load-line IR drop based power saving technique used in the uncore area in accordance with one embodiment.
  • FIGs. 10(A), 10(B), and 10(C) illustrate a reduction in the voltage provided to the uncore area while using a load-line IR drop based power saving technique a in accordance with one embodiment.
  • FIGs. 1 1 (a), 1 1 (b), and 1 1 (c) are timing diagrams, which illustrate the variation of current, voltage, and power in response to using the load-line IR drop based power saving technique in the uncore area in accordance with one
  • FIG. 12 illustrates a block diagram of a computer system in accordance with an embodiment of the present invention.
  • references in the specification to "one embodiment”, “an embodiment”, “an example embodiment”, indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
  • Embodiments of the invention may be implemented in hardware, firmware, software, or any combination thereof. Embodiments of the invention may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors.
  • a machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device).
  • a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other similar signals.
  • ROM read only memory
  • RAM random access memory
  • a processor forms an important portion of a computing system.
  • the present day processors have core area comprising multiple processing cores and caches and a large uncore area.
  • the power consumed by the processor has an impact on the overall power consumed by the computing system.
  • the power consumed by the core area of the processor may be controlled by controlling the Cdyn of the processor.
  • the Cdyn may be controlled such that the Cdyn is within an allowable Cdyn value irrespective of the application (or the code) being processed by the core area.
  • the power management technique may include measuring digital activity factor (DAF), monitoring architectural and data activity levels, and controlling power consumption by throttling the instructions based on the activity levels.
  • DAF digital activity factor
  • such an approach may provide a fine grained power management technique and an ability to create boost modes that control the code while the code is being processed as compared to boost modes, which may react to the code being processed.
  • the boost mode may refer to operating the core(s) or a processor at a higher frequency and higher voltage operating point to enable higher performance for lighter workloads.
  • the processor may include, multiple activity sensors, an activity accumulation logic, a throttling logic, and a throttler.
  • the activity sensors may sense the activity occurring within the blocks (e.g., instruction fetch and decode unit, execution units, and such other units within the processing core) and provide the activity levels (architectural and data activity values) to the activity accumulation logic.
  • the activity sensors may be provided in the interfaces (or ports) of each block within the processing cores to enable the activity sensors to detect the architectural and data activity events.
  • the activity accumulation logic may generate an accumulated activity value in response to collecting the activity values from the activity sensors.
  • the activity accumulation logic may provide the accumulated activity level to the throttling logic.
  • the activity accumulation logic may include weighing logic and aggregators and the weighing logic may assign a weight to each activity value provided by the activity sensors and the aggregators may accumulate (or sum up) the activity values to generate an accumulated activity value.
  • the throttling logic may determine a Cdyn_actual in response to receiving the accumulated activity level. In one embodiment, the throttling logic may also calibrate the Cdyn_actual to a power score value. In one embodiment, the throttling logic may compare the power score with a target value (allowable Cdyn value) provided by a power control unit and generate a first signal if the power score is greater than the target value and a second signal if the power score is less than the target value. In one embodiment, the throttling logic may determine a first instruction dispersion rate (or value) based on the first signal and a second instruction dispersion value based on the second signal. In one embodiment, the throttling logic provides either the first or the second instruction dispersion value to the throttler.
  • a target value allowable Cdyn value
  • the throttler may either vary (increase the decrease) the throttling of instruction dispersion (or the rate at which the instructions are provided to the execution units) or maintain a previous throttling level based on the signal received from the throttling logic.
  • the throttler may increase the instruction throttling (i.e, fewer instructions may be provided to the execution units) in response to receiving the first instruction dispersion value and the throttler may decrease the instruction throttling (i.e., more number of instructions are allowed to reach the execution units) in response to receiving the second instruction dispersion value.
  • the power consumption in the core area may be controlled by throttling the instruction dispersal based on the activity levels in the processing core.
  • throttling may be implemented in different time domains such as 3 rd droop (1 microsecond) and thermal design point (TDP) (1 millisecond), which allows long term (i.e., TDP) and short term (i.e., 3 rd droop) operations to control power consumption in the core area of the processor.
  • the size of the uncore area is ever increasing in the present day processors and so is the power consumed by the uncore area of the processor.
  • the idle power consumed by the uncore area i.e., the power consumed by the uncore area while the core area is in a deep power saving states such as package C-state
  • the output of a voltage regulator may be coupled to a supply pin of the uncore area through a load resistor RL.
  • a minimum value of voltage (VPmin) is to be provided to the uncore area if the uncore area has to be operated at a frequency value specified by the manufacturer of the part.
  • the VP_peak (X - ICC_peak * RL) volts.
  • the VP_peak should be at least equal to VPmin to avoid design failures and it may not be possible to reduce the VP_peak below VPmin value.
  • the product of (ICCjdIe * RL) will be less than the product of (ICCjpeak * RL).
  • the VPj ' dle will be greater than the VPjpeak.
  • the reference voltage (VR) may be varied to reduce the voltage (VPj ' dle) provided at the supply pin of the uncore area. In one embodiment, reference voltage VR may be reduced to
  • VP_reduced such that the VPj ' dle reduces to a value that is slightly higher than the VPmin (or VPjpeak).
  • the idle power consumed by the uncore area may be minimum.
  • the reference voltage (VR) may be varied to save or reduce the idle power consumed by the uncore area.
  • FIG. 1 An embodiment of a processor 100, which may support power saving techniques to reduce the power consumed in the core and the uncore of the processor is illustrated in FIG. 1 .
  • the processor 100 may comprise a core area 105 and an uncore area 150.
  • the core 105 and the uncocre 150 may support a point-to-point bi-directional bus to enhance communication between the processing cores (p-cores) 1 10 and between the core area 105 and the uncore area 150.
  • the core area 105 may be provided with a power plane 195, which may include a voltage regulator 180 and the output 101 of the voltage regulator 180 may be coupled to a supply pin 104 through a load resistor RL 102.
  • the core area 105 may comprise processing cores such as p-core 1 10-A to 1 10-N, per-core caches 120-A to 120-N associated with the p-cores 1 10-A to 1 10-N, respectively, and mid-level caches 130-A to 130-N associated with the p-cores 1 10-A to 1 10-N, respectively.
  • the p- cores 1 10 may include an instruction queue 106, a throttler 107, an activity accumulation logic AAL 108, a throttling logic TL 109, an instruction fetch unit IFU 1 12, a decode unit 1 13, a reservation station RS 1 14, an execution unit EU 1 15, a floating point execution unit FPU 1 16, a re-order buffer ROB 1 17, and a retirement unit RU 1 18.
  • each processor core 1 10-B to 1 10-N may include blocks that are similar to the blocks depicted in the processing core 1 10-A and the internal details of each of the processing cores 1 10-B to 1 10-N is not shown for brevity.
  • the per-core caches 120 may include memory technologies that may support higher access speeds, which may decrease the latency of instruction and data fetches, for example.
  • the activity sensors 179 may sense the activity occurring within the blocks IFU 1 12, DU 1 13, RS 1 14, EU 1 15, FPU 1 16, ROB 1 17, and RU 1 18 and provide the activity levels (architectural and data activity values) to the activity accumulation logic.
  • the activity sensors 179 may be provided in the data paths of each block within the processing core 1 10-A to enable the activity sensors 179 to detect the architectural and data activity values.
  • the AAL 108 may collect the activity levels sensed by the multiple activity sensors179 and generate an accumulated activity value.
  • the activity accumulation logic AAL 108 may provide the accumulated activity value to the throttling logic TL 109.
  • the TL 109 may determine a Cdyn_actual in response to receiving the accumulated activity level. In one embodiment, the TL 109 may also calibrate the Cdyn_actual to a power score value. In one embodiment, the TL 109 may compare the power score with a target value (allowable Cdyn value) and generate a control signal, which may indicate whether to increase or decrease or maintain the throttling level of instructions or the instruction dispersal rate. In one embodiment, the throttler 107 may either vary (increase the decrease) or maintain the throttling of instructions or instruction dispersal rate based on the control signal received from the TL 109.
  • the throttler 107 may either increase the instruction throttling (i.e, fewer instructions may be provided to the execution units) or decrease the instruction throttling (i.e., more number of instructions are allowed to reach the execution units) in response to receiving the control signal.
  • the power consumption in the core area 105 may be controlled by throttling the instructions based on the activity levels in (or Cdyn_actual of) the processing core 1 10.
  • the throttling of instructions may be performed based directly on the activity levels (or the Cdyn), the ability to control the power consumption may be quicker.
  • the control of consumption of power in the core may be performed on a pro-active basis rather than being reactive to occurrence of excessive power consumption conditions.
  • throttling may be implemented in different time domains such as 3 rd droop (1 microsecond) and thermal design point (TDP) (1 millisecond), which may allow long term (i.e., TDP) and short term (i.e., 3 rd droop) operations to control power consumption in the core area 105 of the processor 100.
  • TDP thermal design point
  • FIG. 3 the Cdyn and its relationship to the type applications is illustrated in FIG. 3 below.
  • the uncore area 150 may include a memory controller 155, a last level cache LLC 160, a home agent HA 161 , a caching agent CA 162, a routing agent RA 163, a global clock/PLL 164, an interface 165, and a power management unit 168.
  • the reference voltage VR may be varied to reduce, especially, the idle power consumed by the uncore area 150 while the core area 105 may be in deep package C-state (i.e., deep power saving state such as C3, C6/C7).
  • the uncore area 150 may be provided with a power plane 197 and the power plane 197 may include a voltage regulator 195 and the output 196 of the voltage regulator 195 may be coupled to the supply pin 194 of the uncore area 150 through a load resistor RL 192.
  • the activity or transactions on the interface path 199 may be zero.
  • a minimum value of voltage VPmin (which is equal to VP-peak in this example) may be provided to the uncore area 150 if the uncore area 150 has to operated at a frequency value (or bin frequency) specified by the manufacturer of the part (i.e., the processor 100). In one embodiment, to avoid design failures, it may not be possible to reduce the value of reference voltage VR below a specified value (1 Volt in the above example).
  • ICC_peak the product of (ICCjdle * RL) will be less than the product of (ICC_peak * RL).
  • the VPjdle will be greater than the VP_peak.
  • the power consumed by the uncore area in the idle state i.e., power consumedjdle
  • the voltage provided to the core area 105 may be substantially cutoff using power gate transistors (PGT) or embedded power gate (EPG).
  • the power management unit 168 may detect a package C-state condition of the core area 105 and may generate a voltage value (VID_R) in a digital format.
  • VID_R voltage value
  • the VID_R value may be provided to the voltage regulator 195.
  • the VP_idle (or VP_normal) provided at the supply pin 194 may be reduced due to a decrease in the value of VR from VR_peak value (or VR_normal to a VR_reduced value.
  • reducing the reference voltage VR from VR_normal value to VR_reduced value may cause a reduction in the VP from VP_idle to VP_reduced.
  • the power consumed by the uncore area 150 may reduce as well in response to reducing the value of VP from VP_idle to VP_reduced.
  • the power consumed_idle may be reduced to Reduced_power_consumed_idle (i.e.,
  • the power management unit 168 may detect an onset of an exit event from the package C-state to a normal mode of the core area 105. In response to the detection of the onset of the exit event, the power management unit 168 may generate a VID_N value corresponding to a normal reference voltage and the VID_N value may be provided to the voltage regulator 195. In one embodiment, in response to receiving the VID_N value, the voltage regulator 195 may increase the VR value from VR_reduced to VR_normal (or VR_peak) value. As a result, the voltage provided at the supply pin 104 of the uncore area 150 may be maintained at or slightly above the VPmin value. In one embodiment, the changes in the reference voltage from VR_reduced to VR_normal and the changes in the VP from
  • VP_reduced to VP_idle may happen well within the exit latency before the uncore 150 may see any activity induced by the core area 105.
  • the minimum voltage VPmin levels may be maintained without affecting the performance of the processor 100.
  • the core 210 may be represented by a total capacitance C To tai 220 and the dynamic capacitance Cdyn 240 may be equal to (Ciotai 220 * activity factor).
  • the Cdyn 240 may vary based on the application (or the code) that is being processed. For example, some applications such as power virus and HPC may exhibit higher activity levels as compared to some other applications such as mainstream applications. Thus, Cdyn 240 may be a fraction of the C To tai 220.
  • a graph 300 of Cdyn Vs workload of various application types is depicted in FIG.3.
  • the graph 300 includes a Y-axis 310 and an X-axis 320, which may, respectively, represent the normalized Cdyn and an approximate number of applications available based on the workload of various application types.
  • the graph 300 includes various applications such as idle applications 330, which may be large in number followed by the mainstream applications 340, the high performance computing HPC applications 350, and the power virus applications 360.
  • the processor 100 may be optimized for mainstream applications 340 by setting the throttle to a lower application ratio of 0.55 indicated by a line 345.
  • the throttle may be set to a higher application ratio of 0.633 indicated by line 355 if the processor 100 is to be optimized for HPC applications.
  • the application ratio may refer to a ratio of the power consumed for a given application as compared to the power consumed by the highest power consumption application such as the power virus (PV).
  • the application ratio may also refer to a ratio of a real application and power virus application.
  • the target value (allowable Cdyn) may be set to a value such that the comparison of Cdyn_actual to the target value may set a more constrictive (i.e., higher) throttling value to allow fewer instructions to reach the execution units in a given time period as compared to that while processing HPC applications 350 or mainstream applications 340.
  • the power management technique discussed above may allow the power virus application to be processed by the processor 100, however, the throttling of instructions may set more constrictive (i.e., higher) throttling value to allow a fewer instructions to be processed.
  • Such an approach avoids a condition in which a high power application (e.g., power virus) limits the frequency at which all the applications may be processed. Further, by throttling high power applications, the current drawn while processing the high power application is reduced allowing a lowest operating voltage (and therefore the frequency) to be set by the throttle level. Also, such an approach may allow a user to monitor and configure the processor to be optimized for HPC code or mainstream code in a real time by configuring machine specific registers MSR 1 1 1 .
  • a high power application e.g., power virus
  • the activity sensors 179 or the data pattern sensors 505 may generate an activity value/level based on pattern of data and architectural events provided on ports or data paths of one or more functional units such as IFU 510, IQ 520, and the EU 550.
  • the activity values may be provided to an activity accumulation logic AAL 570.
  • the activity accumulation logic AAL 570 may receive the activity values from the data pattern (or activity) sensors and generate an
  • the AAL 570 may include a weighing logic 610, summing units 630, 640, 650, and 660, and an accumulator 670.
  • the weighing logic 610 may include weighing elements 610-A to 610-H and each of the weighing elements 610-A to 610-D may receive data inputs 605-A to 605-D from functional units such as IFU 510, IQ 520, and EU 550 and the data inputs 605-A to 605-D so received may indicate the work being done.
  • the data inputs 605-A to 605-D received from the functional units 510, 520, and 550 may be updated every cycle and the width of such data inputs 605-A to 605-D may be less than 128 bits.
  • the data inputs 605-A to 605- D received from the functional units may represent an operational power and may, for example, include floating point unit digital activity factor (FPUDAF), instruction fetch and resteer digital activity factor (IFRDAF), and such other similar input values.
  • FPUDAF floating point unit digital activity factor
  • IFRDAF instruction fetch and resteer digital activity factor
  • the data inputs 605-A to 605-D may be provided a weight value based on a pre-determined logic before providing the weighted inputs to the summing unit 630.
  • the weighing elements 610-E to 610-H may receive data inputs 605-E to 605-H from register files indicating data being consumed. In one embodiment, the data inputs 605-E to 605-H may be updated every 128 cycles and the weighing elements 610-E to 610-H may provide weight values to the data inputs 605-E to 605-H before providing the weighted inputs to the summing unit 640. In one embodiment, the summing units 650 and 660and the accumulator 670 may together generate the accumulated activity value of an appropriate width (for example, 44 bits wide). In one embodiment, the summing unit 650 may sum the data input sum from 640 with the activity input sum from 650. In one embodiment, the accumulator latch 670 may feedback the value through the accumulator summer 660 and may generate the accumulated activity value of an appropriate width.
  • the throttling logic TL 560 may receive the accumulated activity value, provided by the AAL 560, and generate a dynamic capacitance (Cdyn) value. In one embodiment, the throttling logic TL 560 may determine the
  • the throttling logic TL 560 may calibrate the Cdyn_actual to represent a power score value.
  • the throttling logic TL 560 may compare the power score, generated based on the Cdyn_actual value, with a target value provided by the power management unit PMU 580.
  • the target value provided by the PMU 580 may represent an allowable Cdyn value calibrated as power score.
  • the user may optimize the processor for HPC applications 350 and the allowable Cdyn value may be equal to an application ratio of 0.633, which may be calibrated to a power score value.
  • the activity levels, the accumulated activity value, the Cdyn_actual, and the power score may represent a higher value if the core area 105 is processing a power virus application 360.
  • the TL 560 may compare the power score corresponding to the allowable Cdyn and the power score corresponding to the Cdyn_actual and control passes to block 480 if the power score is less than the target value and to block 490 otherwise. In one embodiment, the TL 560 may generate a first signal if the power score is less than the target value and may generate a second signal if the power score is greater than the target value.
  • the TL 560 may compare the power score (i.e., calibrated to the Cdyn_actual) corresponding to the power virus PV application 360 with the target value, which may be set for an allowable Cdyn corresponding to the HPC application 350 and the TL 560 may generate a second signal as the power score may be greater than the target value.
  • the power score i.e., calibrated to the Cdyn_actual
  • the throttler 530 may maintain or reduce the throttling of instructions in response to receiving the first signal.
  • the first signal may indicate that more instructions may be processed without exceeding the Cdyn envelope or power score envelope and the throttler 530 may decrease throttling (or increase the instruction throughput).
  • the throttler 530 may maintain the instruction throughput without altering the throttling level.
  • the throttler 530 may increase the throttling of instructions to ensure the power consumption is within the TDP envelope.
  • the instruction throughput is reduced by increasing the throttling level thus allowing fewer instructions to reach the execution units.
  • the throttler 530 may quickly increase the throttling level to decrease the instruction throughput.
  • throttling may be implemented in different time domains such as 3 rd droop (1 microsecond) and thermal design point (TDP) (1 millisecond), which may allow long term (i.e., TDP) and short term (i.e., 3 rd droop) operations to control power consumption in the core area 105 of the processor 100.
  • a graph 700 depicting a plot of instantaneous activity with and without throttle is illustrated in FIG. 7.
  • the graph 700 includes a Y-axis 710 representing application ratio and an X-axis 740 representing time (in microseconds).
  • a burst activity instantaneous activity
  • T1 duration lesser than a small duration
  • a burst activity 750 which may be allowed without being throttled is depicted in graph 700.
  • the power management technique described above may begin to throttle the instructions.
  • the graph 700 depicts such a sustained activity 760, which may be throttled as shown by the throttled activity 770. It may be observed that the sustained activity 760, if left un-throttled may occur for a time duration T2, however, in one embodiment, the sustained activity 760 may be throttled using the power management technique described above. As a result of throttling, the instruction dispersal or instruction throughput may be varied and the sustained activity 760 may be spread out over a longer duration of time T3 and such a spread out activity may be referred to as throttled activity 770.
  • FIG. 8 An graph 800 depicting a plot of average activity demanded and an average activity granted over a time period is illustrated in FIG. 8.
  • the graph 800 includes a Y-axis 810 representing application ratio and an X-axis 840 representing time (in microseconds).
  • the average activity demanded may be represented by a plot 830 and the average activity granted may be represented by a plot 820.
  • the average activity demanded over a time period T5 may have a peak application ratio of 1 .
  • the peak application ratio may not be granted by the power management technique discussed above. Instead, a lower application ratio (of 0.8, for example) may be allowed and the time period over which such a throttled average activity granted 820 may occur is T6, which may be greater than T5.
  • FIG. 9 An embodiment of an operation of the power management path including the power management unit PMU 168 and the voltage regulator 195 to reduce the idle power consumed by the uncore area 150 while the core area 105 is in package C-state is illustrated in FIG. 9.
  • the PMU 168 may check if the core area 105 has entered a package C-state and control passes to block 915 if the core area 105 has entered a package C-state and the PMU 168 may wait for the core area 105 to enter a deep power saving state (or package C-state).
  • the PMU 168 may generate a first voltage value (FVID or VID_R discussed above) to be provided to a voltage regulator 195 supplying the uncore area 150 of the processor 100.
  • the PMU 168 may provide the FVID to the voltage regulator 195.
  • the voltage regulator 195 may change the VR from a normal reference voltage (VR_normal) to a reduced reference voltage (VR_reduced) based on the FVID value.
  • the VR may be reduced from a VR_normal of 1 volt to a VR_reduced value of 0.96 volts.
  • the voltage VP provided at the supply pin 194 may change to
  • the VP may be reduced from VP_idle of 0.972 volts to 0.932 volts as discussed above in response to a change in VR from 1 volt to 0.96 volts.
  • the idle power consumed by the uncore area 150 may decrease as well (for example, from 16.95 watts to 14.988 watts, causing a power saving of 1 .96 watts as described above).
  • the PMU 168 may check for a package C-state exit event of the core and if the PMU 168 detects a package C-state exit event, control passes to block 960.
  • the operation performed by the PMU 168 in block 950 may be performed in parallel and independent of the operation in the blocks 915 to 945.
  • the PMU 168 may perform blocks 965 to 990 before the core area 105 or any processing core 1 10 within the core area 105 exits from the package C-state to enter into an active state.
  • the PMU 168 may generate a second voltage value (SVID or VID_N discussed above) to be provided to the voltage regulator 195 supplying the uncore area 150 of the processor 100.
  • the PMU 168 may provide the SVID (or VID_N) to the voltage regulator 195.
  • the voltage regulator 195 may change the VR from
  • VR_reduced to the normal reference voltage (VR_normal) based on the SVID value may be increased from a VR_reduced value of 0.96 volts to a VR_normal value of 1 volt.
  • the voltage VP provided at the supply pin 194 may change to VP_idle.
  • the VP may be increased from the VP_reduced (0.932) volts to 0.972 volts as discussed above in response to a change in VR from 0.96 volts to 1 volt.
  • FIGs 10(A), 10(B), and 10(C) An embodiment of an operation of the voltage regulator 195 under normal and idle conditions with and without using the power management technique described above is illustrated in FIGs 10(A), 10(B), and 10(C).
  • the reference voltage VR may be equal to VR_normal
  • ICC 193 may be equal to ICC_peak
  • the pin voltage VP may be equal to VP_idle.
  • the VP_idle may equal ⁇ [VR_normal - (ICC_peak *RL 192)] ⁇ .
  • P_normal dynamic power + Leakage power
  • VR is to be reduced from VR_normal to VR_reduced as shown in FIG. 10(C).
  • the PMU 168 may generate a FVID (as described in block 915) and provide the FVID (as described in block 920) to voltage regulator 195.
  • the graph of FIG. 1 1 (a) includes a X-axis 1 101 representing time and Y-axis 1 102 representing current (ICC 193).
  • ICC193 may equal ICC_peak
  • the core area 105 may begin to enter the package C-state, and in response to the entry event at the point 1 105, the current ICC 193 may change from ICC_peak to ICC_idle
  • the ICC 193 may change from ICC_idle 1 107 to ICC_peak 1 106 and the exit event of the core area 105 may be complete at time point 1 1 10.
  • the time difference between the points 1 108 and 1 105 may represent the entry latency and the time difference between the points 1 109 and 1 1 10 may represent the exit latency.
  • FIG. 1 1 (b) illustrates a variation in the reference voltage VR and the pin voltage VP in response to a change in the current from ICC_peak 1 106 to ICC_idle
  • the graph of FIG. 1 1 (b) includes a X-axis 1 1 1 1 representing time and Y-axis 1 1 12 representing voltage (VR and VP).
  • the voltage reference VR and VP may respectively equal VR_normal 1 1 13 and VP_idle or VP_normal 1 1 15.
  • the voltage reference VR and VP may respectively equal VR_normal 1 1 13 and VP_idle 1 1 15.
  • the reference voltage VR and the pin voltage VP may, respectively, remain at VR_reduced 1 1 14 and VP_reduced 1 1 16 between the time points 1 108 and 1 109, which may represent the time duration in which the core area 105 remains in the deep power saving state.
  • FIG. 1 1 (c) illustrates a variation in the power consumed in response to a change in the pin voltage VP from VP_idle 1 1 15 to VP_reduced 1 1 16.
  • the graph of FIG. 1 1 (c) includes an X-axis 1 121 representing time and Y-axis 1 122 representing power consumed.
  • the power Consumed_idle may again reach the prior level Normal power consumed 1 123.
  • the power consumed by the uncore area 150 may decrease as well as the power consumed by the uncore area 150 may be proportionate to the square of the pin voltage provided at the supply pin 164.
  • a computer system 1200 may include a general purpose processor 1202 including a single instruction multiple data (SIMD) processor and a graphics processor unit (GPU) 1205.
  • the processor 1202 may perform enhancement operations in addition to performing various other tasks or store a sequence of instructions, to provide enhancement operations in a machine readable storage medium 1225.
  • the sequence of instructions may also be stored in the memory 1220 or in any other suitable storage medium.
  • the graphics processor unit 1205 may be used to perform enhancement operations, as another example.
  • the processor 1202 that operates the computer system 1200 may be one or more processor cores coupled to logic 1230.
  • the logic 1230 may be coupled to one or more I/O devices 1260, which may provide interface the computer system 1200.
  • the logic 1230 for example, could be chipset logic in one embodiment.
  • the logic 1230 is coupled to the memory 1220, which can be any kind of storage, including optical, magnetic, or semiconductor storage.
  • the graphics processor unit 1205 is coupled through a frame buffer to a display 1240.
  • the processor 1202 may include a core area 1203 and an uncore area 1204. In one embodiment, the power consumed by the core area
  • the Cdyn may be controlled such that the Cdyn is within an allowable Cdyn value irrespective of the application (or the code) being processed by the core area 1203.
  • throttling may include measuring digital activity factor (DAF), monitoring architectural and data activity levels, and controlling power consumption by throttling the instructions based on the activity levels as described above.
  • DAF digital activity factor
  • throttling may be implemented in different time domains such as 3 rd droop (1 microsecond) and thermal design point (TDP) (1 millisecond), which allows long term (i.e., TDP) and short term (i.e., 3 rd droop) operations to control power consumption in the core area of the processor.
  • TDP thermal design point
  • such an approach may provide a fine grained power management technique and an ability to create boost modes that control the code while the code is being processed as compared to boost modes, which may react to the code being processed.
  • the idle power consumed by the uncore area 1204 may be reduced by varying the voltage (i.e, reference voltage VR) provided to the uncore area 1204.
  • the output of a voltage regulator 1206 may be coupled to a supply pin of the uncore area
  • reference voltage VR and thus the pin voltage (VP) at the supply pin of the uncore area 1204 may be decreased, while the core area is in deep package C-state.
  • reference voltage VR may be reduced such that the VP_idle reduces to a value that is slightly higher than the VPmin (or VP_peak).
  • the reference voltage (VR) may be varied to save or reduce the idle power consumed by the uncore area 1204.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Amplifiers (AREA)
  • Microcomputers (AREA)

Abstract

A processor may include a core and an uncore area. The power consumed by the core area may be controlled by controlling the Cdyn of the processor such that the Cdyn is within an allowable Cdyn value irrespective of the application being processed by the core area. The power management technique includes measuring digital activity factor (DAF), monitoring architectural and data activity levels, and controlling power consumption by throttling the instructions based on the activity levels. As a result of throttling the instructions, throttling may be implemented in 3rd droop and thermal design point (TDP). Also, the idle power consumed by the uncore area while the core area is in deep power saving states may be reduced by varying the reference voltage VR and the VP provided to the uncore area. As a result, the idle power consumed by the uncore area may be reduced.

Description

MANAGING POWER CONSUMPTION IN A MULTI-CORE PROCESSOR
BACKGROUND
[0001 ] A computer system may comprise a processor, which may include a core area and an uncore area. The core area may include one or more processing cores, caches (L1 and L2, for example), line-fill buffers and the uncore area may comprise last level caches, a memory controller, and such other blocks. The processor power management techniques aim at reducing the power consumed by the core area. In one prior approach, an activity factor in the core area is measured and a power value (actual power consumption value) corresponding to the activity factor is determined. Then, voltage and/or frequency operating point may be varied based on a
comparison between the actual power consumption value and an allowable power value. The power management technique may lower the voltage and/or frequency operating point after detecting that the actual power consumption value is equal to or higher than the allowable power value. However, a specific amount of time would be incurred between the point at which the high activity is detected and the point at which the voltage and/or frequency operating point is actually lowered. In between these two points, the computer system may operate in high power state and high activity state as well. To avoid such a situation, the processor (or the part) has to be binned at a lower voltage and frequency point (V/F) point.
[0002] In another prior approach, the voltage and/or frequency operating points may be selected based on the processor power saving (P) states and boost modes, which may modulate the voltage and/or frequency operating points based on the actual power consumed value. The above approaches rely on voltage operation range to increase or decrease the power and performance through frequency. With each new generation of processors, the voltage range is reduced as VCCmax is lowered for gate-oxide reliability while VCCmin remains almost constant. The above approaches are reactive in nature to the over power condition. The power management techniques discussed above respond only after the processor has reached a high thermal or power state. As a result, the time taken (or latency) to actually change the voltage and/or frequency operating point in response to a change in the thermal or power state is substantial and there is a need to reduce the latency.
[0003] Also, on the other hand, the modern processors are targeted for many core designs and these cores are coupled to a common uncore area. With the advancements in the process technology, the uncore area within the processor is growing larger in size. The uncore areas in modern processors may include many functional and logical blocks (e.g., memory controller, last level caches, home agents, routing agents, caching agents, power control units, interfaces, and such other blocks) and may typically operate on a different power plane than that of the core area. Desirably, these processors need to consume low idle power, for example, to reduce the total energy consumed and/or improving the battery life. However, the power consumed by such larger uncore area has reached
considerable levels (close to 50% of the total power consumed by the processor).
[0004] Management of power consumption in the uncore area has become more important than ever. The power management in the uncore area poses additional challenges as there are no well defined sleep states (for example, CO to C6/C7) like that of the core area. Especially, when the core area is in deep sleep state such as a C3, C6/C7 or any other similar states (referred to as package C-state), the core architecture states are saved in the uncore area and the core voltage is reduced to a substantially minimum value using per core power gate transistors (PGT) or embedded power gates (EPG). Under this condition, the idle power consumption by the core area is almost zero and the idle power consumed by the uncore area is substantial. Also, the uncore area, unlike the core area, has to be active to service any external requests within a specified latency. Many of these processors are designed for multi-socket configuration with distributed memory coupled to the multiple sockets. Using power optimization techniques such as voltage and frequency scaling may affect the snoops or memory access response to the peer sockets or system agent response latency. Thus, the current processors do not use voltage/frequency scaling techniques to conserve power in the uncore area while the core area in package C-state. As a result, the processor package idle power is as high as 20-40% of the thermal design power (TDP) power. Thus, there is a need for improved power management techniques in both the core and the uncore areas of the processor.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] The invention described herein is illustrated by way of example and not by way of limitation in the accompanying figures. For simplicity and clarity of illustration, elements illustrated in the figures are not necessarily drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements.
[0006] FIG. 1 illustrates a processor 100, which supports activity based power saving technique in the core area and the load-line IR drop based power saving technique in the uncore area in accordance with one embodiment.
[0007] FIG. 2 illustrates the core area of the processor modeled in terms of total capacitance (Ctotal) and dynamic capacitance (Cdyn) in accordance with one embodiment.
[0008] FIG. 3 illustrates a plot of variation of Cdyn with reference to change in the workload of the applications in accordance with one embodiment.
[0009] FIG. 4 illustrates a flow-chart, which depicts an activity based power saving technique used in the core area in accordance with one embodiment.
[0010] FIG. 5 illustrates a block diagram used to implement the activity based power saving technique used in the core area in accordance with one embodiment.
[001 1 ] FIG. 6 illustrates a block diagram of an activity accumulation logic used to implement the activity based power saving technique used in the core area in accordance with one embodiment.
[0012] FIG. 7 is a graph, which illustrates an effect of the activity based power saving technique on the instantaneous activity in the core area in accordance with one embodiment. [0013] FIG. 8 is a graph, which illustrates an effect of the activity based power saving technique on the average activity in the core area in accordance with one embodiment.
[0014] FIG. 9 is a flow-chart, which illustrates a load-line IR drop based power saving technique used in the uncore area in accordance with one embodiment.
[0015] FIGs. 10(A), 10(B), and 10(C) illustrate a reduction in the voltage provided to the uncore area while using a load-line IR drop based power saving technique a in accordance with one embodiment.
[0016] FIGs. 1 1 (a), 1 1 (b), and 1 1 (c) are timing diagrams, which illustrate the variation of current, voltage, and power in response to using the load-line IR drop based power saving technique in the uncore area in accordance with one
embodiment.
[0017] FIG. 12 illustrates a block diagram of a computer system in accordance with an embodiment of the present invention.
DETAILED DESCRIPTION
[0018] The following description describes embodiments of a technique to post weakly ordered transactions. In the following description, numerous specific details such as logic implementations, resource partitioning, or sharing, or duplication implementations, types and interrelationships of system components, and logic partitioning or integration choices are set forth in order to provide a more thorough understanding of the present invention. It will be appreciated, however, by one skilled in the art that the invention may be practiced without such specific details. In other instances, control structures, gate level circuits, and full software instruction sequences have not been shown in detail in order not to obscure the invention. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate functionality without undue experimentation.
[0019] References in the specification to "one embodiment", "an embodiment", "an example embodiment", indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
[0020] Embodiments of the invention may be implemented in hardware, firmware, software, or any combination thereof. Embodiments of the invention may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors. A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device).
[0021 ] For example, a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other similar signals. Further, firmware, software, routines, and instructions may be described herein as performing certain actions. However, it should be appreciated that such descriptions are merely for convenience and that such actions in fact result from computing devices, processors, controllers, and other devices executing the firmware, software, routines, and instructions.
[0022] A processor forms an important portion of a computing system. The present day processors have core area comprising multiple processing cores and caches and a large uncore area. The power consumed by the processor has an impact on the overall power consumed by the computing system. The dynamic power (P) consumed by the processor may be given by P = Cdyn * (Vcc)2 * F. In one embodiment, the power consumed by the core area of the processor may be controlled by controlling the Cdyn of the processor. In one embodiment, the Cdyn may be controlled such that the Cdyn is within an allowable Cdyn value irrespective of the application (or the code) being processed by the core area. In one
embodiment, the power management technique may include measuring digital activity factor (DAF), monitoring architectural and data activity levels, and controlling power consumption by throttling the instructions based on the activity levels. In one embodiment, such an approach may provide a fine grained power management technique and an ability to create boost modes that control the code while the code is being processed as compared to boost modes, which may react to the code being processed. In one embodiment, the boost mode may refer to operating the core(s) or a processor at a higher frequency and higher voltage operating point to enable higher performance for lighter workloads.
[0023] In one embodiment, to control the power consumed by the core area, the processor may include, multiple activity sensors, an activity accumulation logic, a throttling logic, and a throttler. In one embodiment, the activity sensors may sense the activity occurring within the blocks (e.g., instruction fetch and decode unit, execution units, and such other units within the processing core) and provide the activity levels (architectural and data activity values) to the activity accumulation logic. In one embodiment, the activity sensors may be provided in the interfaces (or ports) of each block within the processing cores to enable the activity sensors to detect the architectural and data activity events. In one embodiment, the activity accumulation logic may generate an accumulated activity value in response to collecting the activity values from the activity sensors. In one embodiment, the activity accumulation logic may provide the accumulated activity level to the throttling logic. In one embodiment, the activity accumulation logic (AAL) may include weighing logic and aggregators and the weighing logic may assign a weight to each activity value provided by the activity sensors and the aggregators may accumulate (or sum up) the activity values to generate an accumulated activity value.
[0024] In one embodiment, the throttling logic may determine a Cdyn_actual in response to receiving the accumulated activity level. In one embodiment, the throttling logic may also calibrate the Cdyn_actual to a power score value. In one embodiment, the throttling logic may compare the power score with a target value (allowable Cdyn value) provided by a power control unit and generate a first signal if the power score is greater than the target value and a second signal if the power score is less than the target value. In one embodiment, the throttling logic may determine a first instruction dispersion rate (or value) based on the first signal and a second instruction dispersion value based on the second signal. In one embodiment, the throttling logic provides either the first or the second instruction dispersion value to the throttler.
[0025] In one embodiment, the throttler may either vary (increase the decrease) the throttling of instruction dispersion (or the rate at which the instructions are provided to the execution units) or maintain a previous throttling level based on the signal received from the throttling logic. In one embodiment, the throttler may increase the instruction throttling (i.e, fewer instructions may be provided to the execution units) in response to receiving the first instruction dispersion value and the throttler may decrease the instruction throttling (i.e., more number of instructions are allowed to reach the execution units) in response to receiving the second instruction dispersion value. Thus, the power consumption in the core area (or within the processing core) may be controlled by throttling the instruction dispersal based on the activity levels in the processing core. As a result of throttling the instructions based on the activity levels (or Cdyn_actual), throttling may be implemented in different time domains such as 3rd droop (1 microsecond) and thermal design point (TDP) (1 millisecond), which allows long term (i.e., TDP) and short term (i.e., 3rd droop) operations to control power consumption in the core area of the processor.
[0026] The size of the uncore area is ever increasing in the present day processors and so is the power consumed by the uncore area of the processor. Especially, in one embodiment, the idle power consumed by the uncore area (i.e., the power consumed by the uncore area while the core area is in a deep power saving states such as package C-state) may be reduced by varying the voltage (i.e, reference voltage VR) provided to the uncore area. In one embodiment, the output of a voltage regulator may be coupled to a supply pin of the uncore area through a load resistor RL. The voltage (VP) at the supply pin of the uncore area is less than the VR by an amount equaling the IR drop (=ICC * RL) i.e., VP = [VR - (ICC * RL)].
[0027] In one embodiment, a minimum value of voltage (VPmin) is to be provided to the uncore area if the uncore area has to be operated at a frequency value specified by the manufacturer of the part. In one embodiment, if VR = X and ICC = ICC_peak, the VP_peak = (X - ICC_peak * RL) volts. In one embodiment, the VP_peak should be at least equal to VPmin to avoid design failures and it may not be possible to reduce the VP_peak below VPmin value. In one embodiment, if the core area is in package C-state, the value of ICC may be equal to ICCjdIe and the voltage (VP_idle) at the supply pin of the uncore area may equal = (X - ICCjdIe * RL). As ICCjdIe is less than the ICC_peak, the product of (ICCjdIe * RL) will be less than the product of (ICCjpeak * RL). As a result, the VPj'dle will be greater than the VPjpeak. In one embodiment, it may be sufficient to provide a minimum voltage (VPmin) at the pin of the uncore area while the core area is in package C- state.
[0028] But, in the absence of a technique to vary the reference voltage VR while a current (ICCjdIe) is flowing through the load resistor RL, a voltage VPj'dle, which is greater than the VPmin (or the VPjpeak) is provided to the uncore area.
Unnecessarily, an extra voltage value equal to (VPj'dle - VPjpeak) is provided to the uncore area even when ICCjdIe is flowing through the load resistor RL. As a result, even while the uncore area is idle, an excess power proportional to square of the voltage equaling (VPjdle-VPjpeak) is consumed by the uncore area. In one embodiment, while the core area is in deep package C-state, the reference voltage (VR) may be varied to reduce the voltage (VPj'dle) provided at the supply pin of the uncore area. In one embodiment, reference voltage VR may be reduced to
VP_reduced such that the VPj'dle reduces to a value that is slightly higher than the VPmin (or VPjpeak). In one embodiment, if (VPj'dle - VPjpeak) tends to zero, the idle power consumed by the uncore area may be minimum. In one embodiment, while the core area is in package C-state, the reference voltage (VR) may be varied to save or reduce the idle power consumed by the uncore area.
[0029] An embodiment of a processor 100, which may support power saving techniques to reduce the power consumed in the core and the uncore of the processor is illustrated in FIG. 1 . In one embodiment, the processor 100 may comprise a core area 105 and an uncore area 150. In one embodiment, the core 105 and the uncocre 150 may support a point-to-point bi-directional bus to enhance communication between the processing cores (p-cores) 1 10 and between the core area 105 and the uncore area 150. In one embodiment, the core area 105 may be provided with a power plane 195, which may include a voltage regulator 180 and the output 101 of the voltage regulator 180 may be coupled to a supply pin 104 through a load resistor RL 102.
[0030] In one embodiment, the core area 105 may comprise processing cores such as p-core 1 10-A to 1 10-N, per-core caches 120-A to 120-N associated with the p-cores 1 10-A to 1 10-N, respectively, and mid-level caches 130-A to 130-N associated with the p-cores 1 10-A to 1 10-N, respectively. In one embodiment, the p- cores 1 10 may include an instruction queue 106, a throttler 107, an activity accumulation logic AAL 108, a throttling logic TL 109, an instruction fetch unit IFU 1 12, a decode unit 1 13, a reservation station RS 1 14, an execution unit EU 1 15, a floating point execution unit FPU 1 16, a re-order buffer ROB 1 17, and a retirement unit RU 1 18. In one embodiment, each processor core 1 10-B to 1 10-N may include blocks that are similar to the blocks depicted in the processing core 1 10-A and the internal details of each of the processing cores 1 10-B to 1 10-N is not shown for brevity. In one embodiment, the per-core caches 120 may include memory technologies that may support higher access speeds, which may decrease the latency of instruction and data fetches, for example.
[0031 ] In one embodiment, the activity sensors 179 may sense the activity occurring within the blocks IFU 1 12, DU 1 13, RS 1 14, EU 1 15, FPU 1 16, ROB 1 17, and RU 1 18 and provide the activity levels (architectural and data activity values) to the activity accumulation logic. In one embodiment, the activity sensors 179 may be provided in the data paths of each block within the processing core 1 10-A to enable the activity sensors 179 to detect the architectural and data activity values. In one embodiment, to control the power consumed by the core area 105, the AAL 108 may collect the activity levels sensed by the multiple activity sensors179 and generate an accumulated activity value. In one embodiment, the activity accumulation logic AAL 108 may provide the accumulated activity value to the throttling logic TL 109.
[0032] In one embodiment, the TL 109 may determine a Cdyn_actual in response to receiving the accumulated activity level. In one embodiment, the TL 109 may also calibrate the Cdyn_actual to a power score value. In one embodiment, the TL 109 may compare the power score with a target value (allowable Cdyn value) and generate a control signal, which may indicate whether to increase or decrease or maintain the throttling level of instructions or the instruction dispersal rate. In one embodiment, the throttler 107 may either vary (increase the decrease) or maintain the throttling of instructions or instruction dispersal rate based on the control signal received from the TL 109. In one embodiment, the throttler 107 may either increase the instruction throttling (i.e, fewer instructions may be provided to the execution units) or decrease the instruction throttling (i.e., more number of instructions are allowed to reach the execution units) in response to receiving the control signal.
[0033] Thus, the power consumption in the core area 105 (or within the processing cores 1 10) may be controlled by throttling the instructions based on the activity levels in (or Cdyn_actual of) the processing core 1 10. In one embodiment, the throttling of instructions may be performed based directly on the activity levels (or the Cdyn), the ability to control the power consumption may be quicker. Also, by limiting the Cdyn to a set value, the control of consumption of power in the core may be performed on a pro-active basis rather than being reactive to occurrence of excessive power consumption conditions. As a result of throttling the instructions based on the activity levels (or Cdyn_actual), throttling may be implemented in different time domains such as 3rd droop (1 microsecond) and thermal design point (TDP) (1 millisecond), which may allow long term (i.e., TDP) and short term (i.e., 3rd droop) operations to control power consumption in the core area 105 of the processor 100. In one embodiment, the Cdyn and its relationship to the type applications is illustrated in FIG. 3 below.
[0034] While the power consumption in the core area 105 may be controlled or managed using the activity level based techniques discussed above, the power consumption in the uncore area 150 may be managed using the power management techniques described below. In one embodiment, the uncore area 150 may include a memory controller 155, a last level cache LLC 160, a home agent HA 161 , a caching agent CA 162, a routing agent RA 163, a global clock/PLL 164, an interface 165, and a power management unit 168. In one embodiment, the reference voltage VR may be varied to reduce, especially, the idle power consumed by the uncore area 150 while the core area 105 may be in deep package C-state (i.e., deep power saving state such as C3, C6/C7). In one embodiment, the uncore area 150 may be provided with a power plane 197 and the power plane 197 may include a voltage regulator 195 and the output 196 of the voltage regulator 195 may be coupled to the supply pin 194 of the uncore area 150 through a load resistor RL 192. In one embodiment, while the core area 105 is in package C-state, the activity or transactions on the interface path 199 may be zero.
[0035] While the core area 105 is active, a peak amount of current (ICC_peak) may flow through the RL 192, and the voltage (VP_peak) at the supply pin 194 of the uncore area 150 may be less than the reference voltage VR (at the output 196 of the voltage regulator 195) by an amount equaling the IR drop (=ICC_peak * RL) i.e., VP_peak = [VR - (ICC_peak * RL)]. For example, if VR = 1 volt, RL192 = 1.4 milliohms, and ICC 193 = ICC_peak = 50 Amps, the IR drop may equal (ICC * RL) = (50 Amps * 1.4 milliohms) = 70 millivolts (mv). As a result, the voltage (VP_peak) provided at the supply pin 194 may equal [1 volt - 70mv] = 0.93 volts. In one embodiment, a minimum value of voltage VPmin (which is equal to VP-peak in this example) may be provided to the uncore area 150 if the uncore area 150 has to operated at a frequency value (or bin frequency) specified by the manufacturer of the part (i.e., the processor 100). In one embodiment, to avoid design failures, it may not be possible to reduce the value of reference voltage VR below a specified value (1 Volt in the above example).
[0036] In absence of a technique to vary the reference voltage VR and while the core area 105 is in pakage C-state, the current (ICC 193) flowing through RL 192 may equal ICC_idle and the voltage (VP_idle) at the supply pin 194 of the uncore area 150 may equal = [VR - (ICCjdle * RL)]. As ICCjdle is less than the
ICC_peak, the product of (ICCjdle * RL) will be less than the product of (ICC_peak * RL). As a result, the VPjdle will be greater than the VP_peak. For example, ICCjdle may equal 20 Amps, and VP = [1 volt - (20Amps * 1 .4 milliohms)] = [1 volt - 28mv] = 0.972 volts, which is greater than the VPjpeak (0.93 volts). As a result, an excess voltage equaling (VPj'dle - VPjpeak) = (0.972 - 0.93 = 0.042 volts) is unnecessarily provided to the uncore area 150. As a result, the power consumed by the uncore area in the idle state (i.e., power consumedjdle) may be
normaljDOwer_consumed_idle, which may be equal to (= dynamic power + leakage power = {[Cdyn * (VPjdle)2 * f] + [function of (VPjdle)4]} = {[5nF * (0.972)2 * 2.53GhZ] + [5 watts]} = 16.95 watts. [0037] In one embodiment, by opportunistically varying the reference voltage VR based on whether the core area 105 is in deep power saving state or a package C- state may provide opportunities to save power consumption during the idle state of the core area 105. In one embodiment, the voltage provided to the core area 105 may be substantially cutoff using power gate transistors (PGT) or embedded power gate (EPG). In one embodiment, while the core area 105 is operating in the deep power saving state the activity injected by the core area 105 into the uncore area 150 may be substantially low. In one embodiment, it may be sufficient to provide a minimum voltage (VPmin =0.93 volts) at the supply pin 194 of the uncore area 150 while the core area 105 is in package C-state. To reduce the VP_idle to
VP_reduced, a value, which may be closer to VPmin, the power management unit 168 may detect a package C-state condition of the core area 105 and may generate a voltage value (VID_R) in a digital format. In one embodiment, the VID_R value may be provided to the voltage regulator 195. In one embodiment, the voltage regulator 195 may generate a reference voltage VR, which may be less than VR_peak (=1 volt) in response to receiving the VID_R value from the power management unit 168.
[0038] In one embodiment, the VP_idle (or VP_normal) provided at the supply pin 194 may be reduced due to a decrease in the value of VR from VR_peak value (or VR_normal to a VR_reduced value. In one embodiment, reducing the reference voltage VR from VR_normal value to VR_reduced value may cause a reduction in the VP from VP_idle to VP_reduced. In one embodiment, the power consumed by the uncore area 150 may reduce as well in response to reducing the value of VP from VP_idle to VP_reduced. For example, the voltage regulator 195, in response to receiving the VID, may reduce the VR from VR_normal (1 volt) to VR_reduced (0.96 volts), as a result, VP may reduce from VP_idle to VP_reduced [= 0.96 - (20Amps * 1 .4milliohms) = (0.96 - 0.028) = 0.932 volts]. In one embodiment, the power consumed_idle may be reduced to Reduced_power_consumed_idle (i.e.,
P_idle_reduced = dynamic power + leakage power = {[Cdyn * (VP_reduced)2 * f] + [function of (VP_reduced)4]} = {for example, [5nF * (0.932)2 * 2.53GhZ] + [4 watts]} = 14.998 watts. As a result, the power saved = [(normal_power_consumed_idle) - (Reduced_power_consumed_idle) = (16.95 - 14.998) = 1 .96 watts). Therefore, in one embodiment, by opportunistically varying the reference voltage VR, the power consumed by the uncore area 150 may be reduced from
normal_power_consumed_idle to reduced_power_consumed_idle in response to the core area 105 entering a package C-state.
[0039] In one embodiment, the power management unit 168 may detect an onset of an exit event from the package C-state to a normal mode of the core area 105. In response to the detection of the onset of the exit event, the power management unit 168 may generate a VID_N value corresponding to a normal reference voltage and the VID_N value may be provided to the voltage regulator 195. In one embodiment, in response to receiving the VID_N value, the voltage regulator 195 may increase the VR value from VR_reduced to VR_normal (or VR_peak) value. As a result, the voltage provided at the supply pin 104 of the uncore area 150 may be maintained at or slightly above the VPmin value. In one embodiment, the changes in the reference voltage from VR_reduced to VR_normal and the changes in the VP from
VP_reduced to VP_idle (or VP_normal) may happen well within the exit latency before the uncore 150 may see any activity induced by the core area 105. Thus, the minimum voltage VPmin levels may be maintained without affecting the performance of the processor 100.
[0040] An embodiment of the core area 105 and determining a corresponding dynamic capacitance Cdyn is illustrated in FIG. 2. In one embodiment, the core 210 may be represented by a total capacitance CTotai 220 and the dynamic capacitance Cdyn 240 may be equal to (Ciotai 220 * activity factor). In one embodiment, the Cdyn 240 may vary based on the application (or the code) that is being processed. For example, some applications such as power virus and HPC may exhibit higher activity levels as compared to some other applications such as mainstream applications. Thus, Cdyn 240 may be a fraction of the CTotai 220.
[0041 ] A graph 300 of Cdyn Vs workload of various application types is depicted in FIG.3. The graph 300 includes a Y-axis 310 and an X-axis 320, which may, respectively, represent the normalized Cdyn and an approximate number of applications available based on the workload of various application types. In one embodiment, the graph 300 includes various applications such as idle applications 330, which may be large in number followed by the mainstream applications 340, the high performance computing HPC applications 350, and the power virus applications 360. In one embodiment, the processor 100 may be optimized for mainstream applications 340 by setting the throttle to a lower application ratio of 0.55 indicated by a line 345. However, the throttle may be set to a higher application ratio of 0.633 indicated by line 355 if the processor 100 is to be optimized for HPC applications. In one embodiment, the application ratio may refer to a ratio of the power consumed for a given application as compared to the power consumed by the highest power consumption application such as the power virus (PV). In other embodiment, the application ratio may also refer to a ratio of a real application and power virus application.
[0042] In one embodiment, if the power virus application 360 is to processed, the target value (allowable Cdyn) may be set to a value such that the comparison of Cdyn_actual to the target value may set a more constrictive (i.e., higher) throttling value to allow fewer instructions to reach the execution units in a given time period as compared to that while processing HPC applications 350 or mainstream applications 340. In one embodiment, the power management technique discussed above may allow the power virus application to be processed by the processor 100, however, the throttling of instructions may set more constrictive (i.e., higher) throttling value to allow a fewer instructions to be processed. Such an approach avoids a condition in which a high power application (e.g., power virus) limits the frequency at which all the applications may be processed. Further, by throttling high power applications, the current drawn while processing the high power application is reduced allowing a lowest operating voltage (and therefore the frequency) to be set by the throttle level. Also, such an approach may allow a user to monitor and configure the processor to be optimized for HPC code or mainstream code in a real time by configuring machine specific registers MSR 1 1 1 .
[0043] A flow-chart depicting the operation of the core area 105 while performing power management techniques described above is illustrated in FIG. 4. In block 410, the activity sensors 179 or the data pattern sensors 505 may generate an activity value/level based on pattern of data and architectural events provided on ports or data paths of one or more functional units such as IFU 510, IQ 520, and the EU 550. In one embodiment, the activity values may be provided to an activity accumulation logic AAL 570.
[0044] In block 420, the activity accumulation logic AAL 570 may receive the activity values from the data pattern (or activity) sensors and generate an
accumulated activity value. In one embodiment, the AAL 570 may include a weighing logic 610, summing units 630, 640, 650, and 660, and an accumulator 670. In one embodiment, the weighing logic 610 may include weighing elements 610-A to 610-H and each of the weighing elements 610-A to 610-D may receive data inputs 605-A to 605-D from functional units such as IFU 510, IQ 520, and EU 550 and the data inputs 605-A to 605-D so received may indicate the work being done. In one embodiment, the data inputs 605-A to 605-D received from the functional units 510, 520, and 550 may be updated every cycle and the width of such data inputs 605-A to 605-D may be less than 128 bits. In one embodiment, the data inputs 605-A to 605- D received from the functional units may represent an operational power and may, for example, include floating point unit digital activity factor (FPUDAF), instruction fetch and resteer digital activity factor (IFRDAF), and such other similar input values. In one embodiment, the data inputs 605-A to 605-D may be provided a weight value based on a pre-determined logic before providing the weighted inputs to the summing unit 630. In one embodiment, the weighing elements 610-E to 610-H may receive data inputs 605-E to 605-H from register files indicating data being consumed. In one embodiment, the data inputs 605-E to 605-H may be updated every 128 cycles and the weighing elements 610-E to 610-H may provide weight values to the data inputs 605-E to 605-H before providing the weighted inputs to the summing unit 640. In one embodiment, the summing units 650 and 660and the accumulator 670 may together generate the accumulated activity value of an appropriate width (for example, 44 bits wide). In one embodiment, the summing unit 650 may sum the data input sum from 640 with the activity input sum from 650. In one embodiment, the accumulator latch 670 may feedback the value through the accumulator summer 660 and may generate the accumulated activity value of an appropriate width.
[0045] In block 430, the throttling logic TL 560 may receive the accumulated activity value, provided by the AAL 560, and generate a dynamic capacitance (Cdyn) value. In one embodiment, the throttling logic TL 560 may determine the
Cdyn_actual based on the Ciotai and the accumulated activity value. In block 450, the throttling logic TL 560 may calibrate the Cdyn_actual to represent a power score value.
[0046] In block 460, the throttling logic TL 560 may compare the power score, generated based on the Cdyn_actual value, with a target value provided by the power management unit PMU 580. In one embodiment, the target value provided by the PMU 580 may represent an allowable Cdyn value calibrated as power score. In one embodiment, the user may optimize the processor for HPC applications 350 and the allowable Cdyn value may be equal to an application ratio of 0.633, which may be calibrated to a power score value. In one embodiment, the activity levels, the accumulated activity value, the Cdyn_actual, and the power score may represent a higher value if the core area 105 is processing a power virus application 360.
[0047] In block 470, the TL 560 may compare the power score corresponding to the allowable Cdyn and the power score corresponding to the Cdyn_actual and control passes to block 480 if the power score is less than the target value and to block 490 otherwise. In one embodiment, the TL 560 may generate a first signal if the power score is less than the target value and may generate a second signal if the power score is greater than the target value. In the above example, the TL 560 may compare the power score (i.e., calibrated to the Cdyn_actual) corresponding to the power virus PV application 360 with the target value, which may be set for an allowable Cdyn corresponding to the HPC application 350 and the TL 560 may generate a second signal as the power score may be greater than the target value.
[0048] In block 480, the throttler 530 may maintain or reduce the throttling of instructions in response to receiving the first signal. In one embodiment, the first signal may indicate that more instructions may be processed without exceeding the Cdyn envelope or power score envelope and the throttler 530 may decrease throttling (or increase the instruction throughput). On the other hand, if the first signal indicates that the instruction throughput is less than the target value but very close to the target value, the throttler 530 may maintain the instruction throughput without altering the throttling level. [0049] In block 490, the throttler 530 may increase the throttling of instructions to ensure the power consumption is within the TDP envelope. In one embodiment, if the power score is greater than the target value, the instruction throughput is reduced by increasing the throttling level thus allowing fewer instructions to reach the execution units. In the above example, the throttler 530 may quickly increase the throttling level to decrease the instruction throughput. As a result of throttling the instructions based on the activity levels (or Cdyn_actual), throttling may be implemented in different time domains such as 3rd droop (1 microsecond) and thermal design point (TDP) (1 millisecond), which may allow long term (i.e., TDP) and short term (i.e., 3rd droop) operations to control power consumption in the core area 105 of the processor 100.
[0050] A graph 700 depicting a plot of instantaneous activity with and without throttle is illustrated in FIG. 7. The graph 700 includes a Y-axis 710 representing application ratio and an X-axis 740 representing time (in microseconds). In one embodiment, if a burst activity (instantaneous activity), which may occur for a duration lesser than a small duration T1 may be allowed with any throttling and such a burst activity 750, which may be allowed without being throttled is depicted in graph 700. However, in one embodiment, if a sustained activity occurs, which may occur beyond the time duration T1 , the power management technique described above may begin to throttle the instructions. The graph 700 depicts such a sustained activity 760, which may be throttled as shown by the throttled activity 770. It may be observed that the sustained activity 760, if left un-throttled may occur for a time duration T2, however, in one embodiment, the sustained activity 760 may be throttled using the power management technique described above. As a result of throttling, the instruction dispersal or instruction throughput may be varied and the sustained activity 760 may be spread out over a longer duration of time T3 and such a spread out activity may be referred to as throttled activity 770.
[0051 ] An graph 800 depicting a plot of average activity demanded and an average activity granted over a time period is illustrated in FIG. 8. The graph 800 includes a Y-axis 810 representing application ratio and an X-axis 840 representing time (in microseconds). In one embodiment, the average activity demanded may be represented by a plot 830 and the average activity granted may be represented by a plot 820. In one embodiment, the average activity demanded over a time period T5 may have a peak application ratio of 1 . However, in one embodiment, the peak application ratio may not be granted by the power management technique discussed above. Instead, a lower application ratio (of 0.8, for example) may be allowed and the time period over which such a throttled average activity granted 820 may occur is T6, which may be greater than T5.
[0052] An embodiment of an operation of the power management path including the power management unit PMU 168 and the voltage regulator 195 to reduce the idle power consumed by the uncore area 150 while the core area 105 is in package C-state is illustrated in FIG. 9.
[0053] In block 910, the PMU 168 may check if the core area 105 has entered a package C-state and control passes to block 915 if the core area 105 has entered a package C-state and the PMU 168 may wait for the core area 105 to enter a deep power saving state (or package C-state).
[0054] In block 915, the PMU 168 may generate a first voltage value (FVID or VID_R discussed above) to be provided to a voltage regulator 195 supplying the uncore area 150 of the processor 100. In one embodiment, the FVID or VID_R may represent a digital value (9 bit value) based on which the voltage regulator 195 may generate a reference voltage VR (= VR_reduced). In block 920, the PMU 168 may provide the FVID to the voltage regulator 195.
[0055] In block 930, the voltage regulator 195 may change the VR from a normal reference voltage (VR_normal) to a reduced reference voltage (VR_reduced) based on the FVID value. In one embodiment, the VR may be reduced from a VR_normal of 1 volt to a VR_reduced value of 0.96 volts.
[0056] In block 940, as a result of the change in VR from VR_normal to
VR_reduced, the voltage VP provided at the supply pin 194 may change to
VP_reduced. In one embodiment, the VP may be reduced from VP_idle of 0.972 volts to 0.932 volts as discussed above in response to a change in VR from 1 volt to 0.96 volts. [0057] In block 945, as a result of the change in VP from VP_idle to VP_reduced (i.e., from 0.972 volts to 0.932 volts), the supply pin 194 of the uncore area 150 may be provided with a pin voltage of VP_reduced (=0.932 volts). As a result of lowering the voltage value provided to the uncore area 150, the idle power consumed by the uncore area 150 may decrease as well (for example, from 16.95 watts to 14.988 watts, causing a power saving of 1 .96 watts as described above).
[0058] In block 950, the PMU 168 may check for a package C-state exit event of the core and if the PMU 168 detects a package C-state exit event, control passes to block 960. In one embodiment, the operation performed by the PMU 168 in block 950 may be performed in parallel and independent of the operation in the blocks 915 to 945.
[0059] In block 960, the PMU 168 may perform blocks 965 to 990 before the core area 105 or any processing core 1 10 within the core area 105 exits from the package C-state to enter into an active state. In block 965, the PMU 168 may generate a second voltage value (SVID or VID_N discussed above) to be provided to the voltage regulator 195 supplying the uncore area 150 of the processor 100. In one embodiment, the SVID or VID_N may represent a digital value (9 bit value) based on which the voltage regulator 195 may generate a reference voltage VR (=
VR_normal). In block 970, the PMU 168 may provide the SVID (or VID_N) to the voltage regulator 195.
[0060] In block 975, the voltage regulator 195 may change the VR from
VR_reduced to the normal reference voltage (VR_normal) based on the SVID value. In one embodiment, the VR may be increased from a VR_reduced value of 0.96 volts to a VR_normal value of 1 volt.
[0061 ] In block 980, as a result of the change in VR from VR_reduced to
VR_normal, the voltage VP provided at the supply pin 194 may change to VP_idle. In one embodiment, the VP may be increased from the VP_reduced (0.932) volts to 0.972 volts as discussed above in response to a change in VR from 0.96 volts to 1 volt.
[0062] In block 990, the current flowing through the load resistor RL 192 may change from ICCjdIe (20 Amps) to ICC_peak (=50 Amps), as a result of the change in VP from VP_reduced to VP_idle (i.e., from 0.932 to 0.972 volts) and the change in current ICC_idle to ICC_peak, the voltage VP (=0.93 volts) may be provided at the supply pin 194 of the uncore area 150.
[0063] An embodiment of an operation of the voltage regulator 195 under normal and idle conditions with and without using the power management technique described above is illustrated in FIGs 10(A), 10(B), and 10(C). In Fig. 10(A), while the uncore 150 is operating at peak, the reference voltage VR may be equal to VR_normal, ICC 193 may be equal to ICC_peak; and the pin voltage VP may be equal to VP_idle. In one embodiment, the VP_idle may equal {[VR_normal - (ICC_peak *RL 192)]}.
[0064] For example, if VR_normal = 1 volt, ICC_peak = 50 Amps, and RL192 = 1 .4 mohms, VP_idle = 1 - (50 * 1 .4) = 0.93V. If the processor 100 has to operate at frequency F (=2.53GhZ, for example) specified for the part, a minimum value of voltage (=0.93 volts) is to provided as VP_idle.
[0065] However, when the core area 105 is in package C-state, as shown in FIG. 10(B), the current ICC193 flowing through the load resistor RL 192 may change to ICCjdle (=20A, for example), then VP_idle is equal to [VR_normal - (ICCjdle *RL 192)] i.e., VPjdIe = 1 - (20 * 1 .4) = 0.972V. But, VPjdIe of 0.93V is sufficient to operate the processor 100 at the frequency F specified for the part and an excess voltage of (VP_idle - minimum value of voltage = 0.972 - 0.93 = 0.042V) is provided to the uncore area 150. The excess voltage may result in excess consumption of more power than required. As a result, the power consumption, P_normal = dynamic power + Leakage power, P_normal = Cdyn * V2 * f + f(V4), = 5nf *(0.972 *0.972) *2.53Ghz + 5Watts, = (1 1 .95 + 5) = 16.95 watts.
[0066] To reduce the VP, VR is to be reduced from VR_normal to VR_reduced as shown in FIG. 10(C). To reduce VR_uncore, the PMU 168 may generate a FVID (as described in block 915) and provide the FVID (as described in block 920) to voltage regulator 195. In response to receiving FVID, the voltage regulator 195 may reduce VR to VR_reduced (= 0.96V, for example). In response to a change in the VR from VR_normal to VR_reduced, VPjdIe becomes VP_reduced (= 0.96-(20 *1 .4) =0.96- 0.028 = 0.932V). As a result, the power consumption P_reduced = Cdyn*V2*f + f(V4) = 5nf *(0.932 *0.932) *2.53Ghz + 4Watts = (10.988 + 4) = 14.988 watts.
Therefore, the Power saved = P_normal - P_reduced = 16.95 - 14.988 = 1 .96 watts.
[0067] A graph 1 100, 1 140, and 1 160 illustrate the effect on the uncore area 150 in response to the core area 105 entering a deep power saving state (package C- state) is depicted in FIGs. 1 1 (a), 1 1 (b), and 1 1 (c), respectively. In one embodiment, the graph of FIG. 1 1 (a) includes a X-axis 1 101 representing time and Y-axis 1 102 representing current (ICC 193). In one embodiment, ICC193 may equal ICC_peak
1 106 (=50 Amps, for example) before the core area 105 enters a package C-state indicated by a region prior to an entry point 1 105. At entry point 1 105, the core area 105 may begin to enter the package C-state, and in response to the entry event at the point 1 105, the current ICC 193 may change from ICC_peak to ICC_idle
(=20Amps) at a point 1 108 and the ICC_idle level may be indicated by the ICC_idle 1 107. In one embodiment, at the exit point 1 109, the ICC 193 may change from ICC_idle 1 107 to ICC_peak 1 106 and the exit event of the core area 105 may be complete at time point 1 1 10. In one embodiment, the time difference between the points 1 108 and 1 105 may represent the entry latency and the time difference between the points 1 109 and 1 1 10 may represent the exit latency.
[0068] FIG. 1 1 (b) illustrates a variation in the reference voltage VR and the pin voltage VP in response to a change in the current from ICC_peak 1 106 to ICC_idle
1 107 and from the ICCjdle 1 107 back to ICC_peak 1 106. In one embodiment, the graph of FIG. 1 1 (b) includes a X-axis 1 1 1 1 representing time and Y-axis 1 1 12 representing voltage (VR and VP). Before the entry point 1 105, the voltage reference VR and VP may respectively equal VR_normal 1 1 13 and VP_idle or VP_normal 1 1 15. After the exit point 1 109, the voltage reference VR and VP may respectively equal VR_normal 1 1 13 and VP_idle 1 1 15. In response to the occurrence of the entry event at point 1 105, the voltage regulator 195 may receive a FVID (or VID_R) and the reference voltage VR may change from VR_normal 1 1 13 (=1 volt, for example) to VR_reduced 1 1 14 (=0.96 volts, for example). In response to a change in the reference voltage VR from VR_normal 1 1 13 to VR_reduced 1 1 14, the pins voltage VP at the supply pin 194 may decrease from VP_idle 1 1 15 (=0.972 volts, for example) to VP_reduced 1 1 16 (= 0.932 volts, for example). In one embodiment, the reference voltage VR and the pin voltage VP may, respectively, remain at VR_reduced 1 1 14 and VP_reduced 1 1 16 between the time points 1 108 and 1 109, which may represent the time duration in which the core area 105 remains in the deep power saving state.
[0069] FIG. 1 1 (c) illustrates a variation in the power consumed in response to a change in the pin voltage VP from VP_idle 1 1 15 to VP_reduced 1 1 16. In one embodiment, the graph of FIG. 1 1 (c) includes an X-axis 1 121 representing time and Y-axis 1 122 representing power consumed. Before the entry point 1 105, the power Consumed_idle may equal Normal power consumed 1 123 (= 16.95 watts, for example). After the exit point 1 109, the power Consumed_idle may again reach the prior level Normal power consumed 1 123. In one embodiment, in response to the core area 105 entering the package C-state, the power consumed by the uncore area 150 may decrease to Reduced power consumed 1 124 (= 14.988 watts, for example). In one embodiment, as the pin voltage VP decreases from VP_idle 1 1 15 to VP_reduced 1 1 16, the power consumed by the uncore area 150 may decrease as well as the power consumed by the uncore area 150 may be proportionate to the square of the pin voltage provided at the supply pin 164. In one embodiment, the amount of power saved may equal (Power Consumed_idle - Reduced power consumed) = (16.95 - 14.988) = 1 .95 volts.
[0070] Referring to FIG. 12, a computer system 1200 may include a general purpose processor 1202 including a single instruction multiple data (SIMD) processor and a graphics processor unit (GPU) 1205. The processor 1202, in one embodiment, may perform enhancement operations in addition to performing various other tasks or store a sequence of instructions, to provide enhancement operations in a machine readable storage medium 1225. However, the sequence of instructions may also be stored in the memory 1220 or in any other suitable storage medium.
[0071 ] While a separate graphics processor unit 1205 is depicted in Fig. 12, in some embodiments, the graphics processor unit 1205 may be used to perform enhancement operations, as another example. The processor 1202 that operates the computer system 1200 may be one or more processor cores coupled to logic 1230. The logic 1230 may be coupled to one or more I/O devices 1260, which may provide interface the computer system 1200. The logic 1230, for example, could be chipset logic in one embodiment. The logic 1230 is coupled to the memory 1220, which can be any kind of storage, including optical, magnetic, or semiconductor storage. The graphics processor unit 1205 is coupled through a frame buffer to a display 1240.
[0072] In one embodiment, the processor 1202 may include a core area 1203 and an uncore area 1204. In one embodiment, the power consumed by the core area
1203 of the processor 1202 may be controlled by controlling the Cdyn of the processor 1202. In one embodiment, the Cdyn may be controlled such that the Cdyn is within an allowable Cdyn value irrespective of the application (or the code) being processed by the core area 1203. In one embodiment, the power
management technique may include measuring digital activity factor (DAF), monitoring architectural and data activity levels, and controlling power consumption by throttling the instructions based on the activity levels as described above. As a result of throttling the instructions based on the activity levels (or Cdyn_actual), throttling may be implemented in different time domains such as 3rd droop (1 microsecond) and thermal design point (TDP) (1 millisecond), which allows long term (i.e., TDP) and short term (i.e., 3rd droop) operations to control power consumption in the core area of the processor. In one embodiment, such an approach may provide a fine grained power management technique and an ability to create boost modes that control the code while the code is being processed as compared to boost modes, which may react to the code being processed.
[0073] In one embodiment, the idle power consumed by the uncore area 1204 (i.e., the power consumed by the uncore area while the core area is in a deep power saving states such as package C-state) may be reduced by varying the voltage (i.e, reference voltage VR) provided to the uncore area 1204. In one embodiment, the output of a voltage regulator 1206 may be coupled to a supply pin of the uncore area
1204 through a load resistor. The reference voltage VR and thus the pin voltage (VP) at the supply pin of the uncore area 1204 may be decreased, while the core area is in deep package C-state. In one embodiment, reference voltage VR may be reduced such that the VP_idle reduces to a value that is slightly higher than the VPmin (or VP_peak). As a result, the reference voltage (VR) may be varied to save or reduce the idle power consumed by the uncore area 1204. [0074] Certain features of the invention have been described with reference to example embodiments. However, the description is not intended to be construed in a limiting sense. Various modifications of the example embodiments, as well as other embodiments of the invention, which are apparent to persons skilled in the art to which the invention pertains are deemed to lie within the spirit and scope of the invention.

Claims

What is claimed is:
1 . A processor comprising:
an uncore area, wherein the uncore area comprises a power management unit and a voltage regulator, wherein the voltage regulator is to provide a regulated voltage (VR) to the uncore area, and
a core area, wherein the core area includes a plurality of functional blocks, a plurality of sensors, an activity accumulation logic, a throttling logic, and a throttler, wherein the plurality of sensors are to collect a plurality of activity levels from the plurality of functional blocks and provide the plurality of activity levels to the activity accumulation logic, wherein the activity accumulation logic is to generate an accumulated activity value and provide the accumulated activity level to the throttling logic, wherein the throttling logic is to generate a signal indicative of a throttling level to be adapted based on comparison of the accumulated activity value with a target value, wherein the throttler is to throttle the instructions provided to execution units based on the throttling level.
2. The processor of claim 1 , wherein the plurality of sensors are provided in one or more ports of the plurality of functional units to sense data activity and
architectural activity of the plurality of functional units.
3. The processor of claim 1 , wherein the throttling logic is to determine an actual dynamic capacitance value based on data pattern observation and the accumulated activity value.
4. The processor of claim 4, wherein the throttling logic is to calibrate the actual dynamic capacitance (Cdyn) value to a power score value.
5. The processor of claim 4, wherein the throttling logic is to compare the power score value with a target value provided by the power management unit, wherein the target value is determined based on an allowable dynamic capacitance value.
6. The processor of claim 3, wherein the throttling logic is to generate the signal, which is indicative of increasing the throttling level if the power score value is greater than the target value.
7. The processor of claim 6, wherein the throttler is to decrease instruction throughput in response to receiving the signal that is indicative of increasing the throttling level, wherein decreasing the instruction throughput is to maintain the actual dynamic capacitance below the allowable dynamic capacitance.
8. The processor of claim 3, wherein the throttling logic is to generate the signal, which is indicative of decreasing the throttling level if the power score value is lesser than the target value.
9. The processor of claim 8, wherein the throttler is to increase instruction throughput in response to receiving the signal that is indicative of decreasing the throttling level.
10. A processor comprising, a core area and an uncore area,
wherein the uncore area comprises a power management unit and a voltage regulator, wherein the voltage regulator is to provide a regulated voltage (VR) to the uncore area,
wherein the power management unit is to detect an event based on which the core area is to enter a deep power saving state and in response provide a first voltage value to the voltage regulator,
wherein the voltage regulator is to decrease the regulated voltage (VR) from a normal reference voltage value to a reduced reference voltage value based on the first voltage value,
wherein decreasing the regulated voltage (VR) causes a reduction in a pin voltage value provided at a supply pin of the uncore area, wherein the reduction in the pin voltage value is to decrease a power consumed by the uncore area,
wherein the pin voltage value is decreased to a level sufficient to maintain a minimum pin voltage value to operate the processor at a specified frequency value.
1 1 . The processor of claim 10, wherein the uncore area is to consume a reduced amount of power until the core area is in the deep power saving state.
12. The processor of claim 1 1 , wherein the voltage provided to the core area is substantially cutoff while the core area is operating in the deep power saving state and an activity injected by the core area into the uncore area is substantially low.
13. The processor of claim 10, wherein the power control unit is to generate a second voltage value in response to detecting an exit event by which the core area exits the deep power saving state and provide the second voltage value to the voltage regulator.
14. The processor of claim 13, wherein the voltage regulator is to increase the reference voltage (VR) from the reduced reference voltage value to the normal reference voltage value in response to receiving the second voltage value.
15. The processor of claim 14, wherein the increase in the reference voltage to the normal reference voltage value is to provide at least the minimum voltage value at the supply pin of the uncore area to allow the processor to be operated at the specified frequency value.
16. A method in a core area of a processor, comprises:
collecting activity levels from a plurality of functional blocks using a plurality of sensors and provide the plurality of activity levels to an activity accumulation logic, generating an accumulated activity value based on the plurality of activity levels in an accumulated activity logic,
generating a signal indicative of a throttling level to be adapted based on comparison of the accumulated activity value using a throttling logic, and
throttling instructions provided to execution units based on the throttling level provided by the signal, wherein the processor comprises a core area, which includes the plurality of functional blocks, the plurality of sensors, the activity accumulation logic, the throttling logic, and the throttler.
17. The method of claim 16 comprises providing the plurality of sensors in one or more ports of the plurality of functional units to sense data activity and architectural activity of the plurality of functional units.
18. The method of claim 16 comprises determining an actual dynamic
capacitance value based on data pattern observation and the accumulated activity value in the throttling logic.
19. The method of claim 18 comprises calibrating the actual dynamic capacitance (Cdyn) value to a power score value in the throttling logic.
20. The method of claim 18 comprises comparing the power score value with the target value provided by a power management unit in the throttling logic, wherein the target value is determined based on an allowable dynamic capacitance value.
21 . The method of claim 18 comprises generating the signal in the throttling logic, wherein the signal is indicative of increasing the throttling level if the power score value is greater than the target value.
22. The method of claim 21 comprises decreasing instruction throughput, in a throttler, in response to receiving the signal that is indicative of increasing the throttling level, wherein decreasing the instruction throughput is to maintain the actual dynamic capacitance below the allowable dynamic capacitance.
23. The method of claim 18 comprises generating the signal in the throttling logic, wherein the signal is indicative of decreasing the throttling level if the power score value is lesser than the target value.
24. The method of claim 23 comprises increasing the instruction throughput, in the throttler, in response to receiving the signal that is indicative of decreasing the throttling level.
25. A method in an uncore area of a processor, comprises:
detecting an entry event based on which a core area enters a deep power saving state, wherein the entry event is detected using a power management unit, providing a first voltage value to a voltage regulator, wherein the first voltage value is generated using the power management unit,
decreasing a regulated voltage from a normal reference voltage value to a reduced reference voltage value based on the first voltage value, and
providing the reduced reference voltage to the uncore area,
wherein decreasing the regulated voltage (VR) causes a reduction in a pin voltage value provided at a supply pin of the uncore area, wherein the reduction in the pin voltage value is to decrease a power consumed by the uncore area.
wherein the uncore area is coupled to the core area, wherein the uncore area includes the power management unit and a voltage regulator.
26. The method of claim 25 comprises determining the first voltage value, which is to decrease the pin voltage value to a level sufficient to maintain a minimum pin voltage value to operate the processor at a specified frequency value.
27. The method of claim 26, wherein the uncore area is to consume a reduced amount of power until the core area is in the deep power saving state.
28. The method of claim 27, wherein an activity injected by the core area into the uncore area is substantially low while the core area is operating in deep power saving state.
29. The method of claim 26 comprises:
generating a second voltage value in response to detecting an exit event by which the core area exits the deep power saving state, and providing the second voltage value to the voltage regulator.
30. The method of claim 28 comprises increasing the reference voltage (VR) from the reduced reference voltage value to the normal reference voltage value in response to receiving the second voltage value.
PCT/US2012/029604 2011-03-21 2012-03-19 Managing power consumption in a multi-core processor Ceased WO2012129147A2 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2014501164A JP2014514641A (en) 2011-03-21 2012-03-19 Managing power consumption in multi-core processors
GB1316089.0A GB2503367B (en) 2011-03-21 2012-03-19 Managing power consumption in a multi-core processor
KR1020147036961A KR101591811B1 (en) 2011-03-21 2012-03-19 Managing power consumption in a multi-core processor
CN201280020735.XA CN103492976B (en) 2011-03-21 2012-03-19 Manage the power consumption in polycaryon processor
KR1020137024802A KR101515318B1 (en) 2011-03-21 2012-03-19 Managing power consumption in a multi-core processor
DE112012001358.1T DE112012001358B4 (en) 2011-03-21 2012-03-19 Managing power consumption in a multi-core processor

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IN773/DEL/2011 2011-03-21
IN773DE2011 2011-03-21
US13/422,476 US9069555B2 (en) 2011-03-21 2012-03-16 Managing power consumption in a multi-core processor
US13/422,476 2012-03-16

Publications (2)

Publication Number Publication Date
WO2012129147A2 true WO2012129147A2 (en) 2012-09-27
WO2012129147A3 WO2012129147A3 (en) 2013-03-14

Family

ID=54187870

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/029604 Ceased WO2012129147A2 (en) 2011-03-21 2012-03-19 Managing power consumption in a multi-core processor

Country Status (8)

Country Link
US (2) US9069555B2 (en)
JP (2) JP2014514641A (en)
KR (2) KR101515318B1 (en)
CN (1) CN103492976B (en)
DE (1) DE112012001358B4 (en)
GB (1) GB2503367B (en)
TW (1) TWI628537B (en)
WO (1) WO2012129147A2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150091915A1 (en) * 2013-09-27 2015-04-02 Linda L. Hurd Current change mitigation policy for limiting voltage droop in graphics logic
WO2016130282A1 (en) * 2015-02-13 2016-08-18 Intel Corporation Performing power management in a multicore processor
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US10565079B2 (en) 2017-09-28 2020-02-18 Intel Corporation Determination of idle power state
WO2020205182A1 (en) 2019-03-29 2020-10-08 Intel Corporation Performing soft throttling and hard throttling in a processor

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
CN104205000B (en) * 2012-03-30 2017-09-15 英特尔公司 Circuit-Based Dynamic Capacitance Controlled Power Gate Circuit
CN104169879B (en) * 2012-04-24 2019-01-04 英特尔公司 For dynamically interrupting the method and computer system that reconfigure
US9218045B2 (en) * 2012-06-30 2015-12-22 Intel Corporation Operating processor element based on maximum sustainable dynamic capacitance associated with the processor
US9183144B2 (en) * 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9075556B2 (en) 2012-12-21 2015-07-07 Intel Corporation Controlling configurable peak performance limits of a processor
US9335813B2 (en) * 2013-05-28 2016-05-10 Intel Corporation Method and system for run-time reallocation of leakage current and dynamic power supply current
KR20150050135A (en) 2013-10-31 2015-05-08 삼성전자주식회사 Electronic system including a plurality of heterogeneous cores and operating method therof
US9514715B2 (en) * 2013-12-23 2016-12-06 Intel Corporation Graphics voltage reduction for load line optimization
US10108454B2 (en) * 2014-03-21 2018-10-23 Intel Corporation Managing dynamic capacitance using code scheduling
US9874927B2 (en) * 2014-06-26 2018-01-23 Intel Corporation Method and apparatus for precision CPU maximum power detection
US9864551B2 (en) * 2014-08-29 2018-01-09 Hewlett Packard Enterprise Development Lp Determining throughput based on system busy level
US10339023B2 (en) 2014-09-25 2019-07-02 Intel Corporation Cache-aware adaptive thread scheduling and migration
US9477243B2 (en) 2014-12-22 2016-10-25 Intel Corporation System maximum current protection
EP3238006A4 (en) * 2014-12-23 2018-07-25 Intel Corporation Adjustment of voltage regulator based on power state
US9880601B2 (en) 2014-12-24 2018-01-30 Intel Corporation Method and apparatus to control a link power state
US9760160B2 (en) * 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
KR20170000625A (en) 2015-06-24 2017-01-03 에스케이하이닉스 주식회사 Memory device and memory system having the same
US9710041B2 (en) 2015-07-29 2017-07-18 Intel Corporation Masking a power state of a core of a processor
US9568982B1 (en) 2015-07-31 2017-02-14 International Business Machines Corporation Management of core power state transition in a microprocessor
US9952651B2 (en) * 2015-07-31 2018-04-24 International Business Machines Corporation Deterministic current based frequency optimization of processor chip
US9874917B2 (en) 2016-01-04 2018-01-23 International Business Machines Corporation Adaptive power capping in a chip
US9971390B1 (en) 2016-01-05 2018-05-15 Apple Inc. Processor energy consumption rate limiting system
US10048738B2 (en) * 2016-03-03 2018-08-14 Intel Corporation Hierarchical autonomous capacitance management
US10209726B2 (en) * 2016-06-10 2019-02-19 Microsoft Technology Licensing, Llc Secure input voltage adjustment in processing devices
US10268255B2 (en) * 2016-06-29 2019-04-23 Intel Corporation Management of system current constraints with current limits for individual engines
US10423206B2 (en) * 2016-08-31 2019-09-24 Intel Corporation Processor to pre-empt voltage ramps for exit latency reductions
US10234920B2 (en) 2016-08-31 2019-03-19 Intel Corporation Controlling current consumption of a processor based at least in part on platform capacitance
US10423209B2 (en) 2017-02-13 2019-09-24 Apple Inc. Systems and methods for coherent power management
KR102814792B1 (en) 2017-02-27 2025-05-29 삼성전자주식회사 Computing device and method for allocating power to the plurality of cores in the computing device
US10290289B2 (en) 2017-04-01 2019-05-14 Intel Corporation Adaptive multibit bus for energy optimization
US10481014B2 (en) * 2017-06-15 2019-11-19 Micron Technology, Inc. Adaptive throttling
US10627883B2 (en) * 2018-02-28 2020-04-21 Advanced Micro Devices, Inc. Onboard monitoring of voltage levels and droop events
US10969858B2 (en) 2019-01-03 2021-04-06 Apple Inc. Operation processing controlled according to difference in current consumption
US11054882B2 (en) 2019-02-21 2021-07-06 Apple Inc. Externally-triggered throttling
US11079825B2 (en) * 2019-08-13 2021-08-03 Intel Corporation Compiler guided power allocation in computing devices
KR102372213B1 (en) 2019-09-09 2022-03-08 한국화학연구원 water degradable film containing hyaluronic acid or salt thereof and polyphenol compounds
US12124350B2 (en) * 2020-04-28 2024-10-22 Intel Corporation Real-time power meter for optimizing processor power management
US12348969B2 (en) * 2020-05-29 2025-07-01 Intel Corporation Systems, methods, and apparatus for workload optimized central processing units (CPUS)
CN114185838B (en) * 2020-09-15 2024-12-31 阿里巴巴集团控股有限公司 System on chip and method for regulating voltage and frequency
US11416056B2 (en) 2020-09-18 2022-08-16 Apple Inc. Power sense correction for power budget estimator
WO2022236782A1 (en) * 2021-05-13 2022-11-17 华为技术有限公司 Power consumption adjustment method and apparatus
US11989077B2 (en) * 2021-12-06 2024-05-21 Mediatek Inc. Maximum current suppression for power management in a multi-core system
US12547236B2 (en) * 2022-10-06 2026-02-10 Google Llc Workload-aware voltage regulator tuning
US20250217293A1 (en) * 2024-01-03 2025-07-03 Advanced Micro Devices, Inc. Shared Last Level Cache Usage Management for Multiple Clients

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163153A (en) 1989-06-12 1992-11-10 Grid Systems Corporation Low-power, standby mode computer
US5522087A (en) 1994-03-22 1996-05-28 Verifone Inc. System for selectively operating in different modes depending upon receiving signal from a host computer within a time window upon power up
US5590341A (en) 1994-09-30 1996-12-31 Intel Corporation Method and apparatus for reducing power consumption in a computer system using ready delay
US5621250A (en) 1995-07-31 1997-04-15 Ford Motor Company Wake-up interface and method for awakening an automotive electronics module
US6029006A (en) * 1996-12-23 2000-02-22 Motorola, Inc. Data processor with circuit for regulating instruction throughput while powered and method of operation
US5931950A (en) 1997-06-17 1999-08-03 Pc-Tel, Inc. Wake-up-on-ring power conservation for host signal processing communication system
US6823516B1 (en) 1999-08-10 2004-11-23 Intel Corporation System and method for dynamically adjusting to CPU performance changes
US6564328B1 (en) * 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US7539885B2 (en) 2000-01-13 2009-05-26 Broadcom Corporation Method and apparatus for adaptive CPU power management
US7010708B2 (en) 2002-05-15 2006-03-07 Broadcom Corporation Method and apparatus for adaptive CPU power management
JP2001318742A (en) 2000-05-08 2001-11-16 Mitsubishi Electric Corp Computer system and computer-readable recording medium
KR100361340B1 (en) 2000-05-15 2002-12-05 엘지전자 주식회사 Controlling method for cpu clock
US6636976B1 (en) * 2000-06-30 2003-10-21 Intel Corporation Mechanism to control di/dt for a microprocessor
US6792392B1 (en) 2000-06-30 2004-09-14 Intel Corporation Method and apparatus for configuring and collecting performance counter data
JP2002033457A (en) 2000-07-18 2002-01-31 Hitachi Ltd Semiconductor integrated circuit device
US6748546B1 (en) 2000-09-26 2004-06-08 Sun Microsystems, Inc. Method and apparatus for reducing power consumption
US6829713B2 (en) 2000-12-30 2004-12-07 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US7058824B2 (en) 2001-06-15 2006-06-06 Microsoft Corporation Method and system for using idle threads to adaptively throttle a computer
US20030061383A1 (en) 2001-09-25 2003-03-27 Zilka Anthony M. Predicting processor inactivity for a controlled transition of power states
US7111179B1 (en) 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US7281140B2 (en) 2001-12-28 2007-10-09 Intel Corporation Digital throttle for multiple operating points
US20030126477A1 (en) * 2001-12-28 2003-07-03 Zhang Kevin X. Method and apparatus for controlling a supply voltage to a processor
US7096145B2 (en) * 2002-01-02 2006-08-22 Intel Corporation Deterministic power-estimation for thermal control
US6996728B2 (en) 2002-04-26 2006-02-07 Hewlett-Packard Development Company, L.P. Managing power consumption based on utilization statistics
US7051227B2 (en) 2002-09-30 2006-05-23 Intel Corporation Method and apparatus for reducing clock frequency during low workload periods
US6898689B2 (en) 2002-11-15 2005-05-24 Silicon Labs Cp, Inc. Paging scheme for a microcontroller for extending available register space
US7043649B2 (en) 2002-11-20 2006-05-09 Portalplayer, Inc. System clock power management for chips with multiple processing modules
US6971033B2 (en) 2003-01-10 2005-11-29 Broadcom Corporation Method and apparatus for improving bus master performance
KR20050115227A (en) 2003-01-23 2005-12-07 유니버시티 오브 로체스터 Multiple clock domain microprocessor
JP4061492B2 (en) 2003-02-10 2008-03-19 ソニー株式会社 Information processing apparatus and power consumption control method
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
TW591372B (en) * 2003-05-15 2004-06-11 High Tech Comp Corp Power control method of portable electronic device, portable electronic device and electronic system
US20050046400A1 (en) * 2003-05-21 2005-03-03 Efraim Rotem Controlling operation of a voltage supply according to the activity of a multi-core integrated circuit component or of multiple IC components
US7272732B2 (en) 2003-06-30 2007-09-18 Hewlett-Packard Development Company, L.P. Controlling power consumption of at least one computer system
TW200502847A (en) 2003-07-08 2005-01-16 Benq Corp Control device and method for reducing number of interrupts in a processor
US7146514B2 (en) 2003-07-23 2006-12-05 Intel Corporation Determining target operating frequencies for a multiprocessor system
US7272730B1 (en) 2003-07-31 2007-09-18 Hewlett-Packard Development Company, L.P. Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform
US7194643B2 (en) 2003-09-29 2007-03-20 Intel Corporation Apparatus and method for an energy efficient clustered micro-architecture
US7770034B2 (en) 2003-12-16 2010-08-03 Intel Corporation Performance monitoring based dynamic voltage and frequency scaling
US20070156992A1 (en) 2005-12-30 2007-07-05 Intel Corporation Method and system for optimizing latency of dynamic memory sizing
US7451333B2 (en) 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US9001801B2 (en) 2004-09-07 2015-04-07 Broadcom Corporation Method and system for low power mode management for complex Bluetooth devices
US7941585B2 (en) 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US7426648B2 (en) 2004-09-30 2008-09-16 Intel Corporation Global and pseudo power state management for multiple processing elements
US7434073B2 (en) 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US8041967B2 (en) 2005-02-15 2011-10-18 Hewlett-Packard Development Company, L.P. System and method for controlling power to resources based on historical utilization data
JP4555140B2 (en) * 2005-04-22 2010-09-29 株式会社日立製作所 Compound computer apparatus and management method thereof
US7454632B2 (en) 2005-06-16 2008-11-18 Intel Corporation Reducing computing system power through idle synchronization
US7430673B2 (en) 2005-06-30 2008-09-30 Intel Corporation Power management system for computing platform
US8301868B2 (en) 2005-09-23 2012-10-30 Intel Corporation System to profile and optimize user software in a managed run-time environment
US20070079294A1 (en) 2005-09-30 2007-04-05 Robert Knight Profiling using a user-level control mechanism
US20070106827A1 (en) 2005-11-08 2007-05-10 Boatright Bryan D Centralized interrupt controller
US7634678B2 (en) * 2006-02-07 2009-12-15 Omx Technology Ab Application software initiated speedup
US20070245163A1 (en) 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
US7397703B2 (en) 2006-03-21 2008-07-08 Freescale Semiconductor, Inc. Non-volatile memory with controlled program/erase
US7437270B2 (en) 2006-03-30 2008-10-14 Intel Corporation Performance state management
US7752468B2 (en) 2006-06-06 2010-07-06 Intel Corporation Predict computing platform memory power utilization
US7529956B2 (en) 2006-07-17 2009-05-05 Microsoft Corporation Granular reduction in power consumption
US7930564B2 (en) 2006-07-31 2011-04-19 Intel Corporation System and method for controlling processor low power states
US7673160B2 (en) 2006-10-19 2010-03-02 International Business Machines Corporation System and method of power management for computer processor systems
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US7793125B2 (en) * 2007-01-10 2010-09-07 International Business Machines Corporation Method and apparatus for power throttling a processor in an information handling system
US7730340B2 (en) 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
TWI388974B (en) * 2007-03-01 2013-03-11 Via Tech Inc Microprocessor capable of dynamically reducing its power consumption in response to varying operating temperature
US8510581B2 (en) 2007-03-26 2013-08-13 Freescale Semiconductor, Inc. Anticipation of power on of a mobile device
US7900069B2 (en) * 2007-03-29 2011-03-01 Intel Corporation Dynamic power reduction
JP2008257578A (en) 2007-04-06 2008-10-23 Toshiba Corp Information processing apparatus, scheduler, and schedule control method for information processing apparatus
US7870407B2 (en) * 2007-05-18 2011-01-11 Advanced Micro Devices, Inc. Dynamic processor power management device and method thereof
US7971074B2 (en) 2007-06-28 2011-06-28 Intel Corporation Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system
US20090150696A1 (en) 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US7966506B2 (en) 2007-12-12 2011-06-21 Intel Corporation Saving power in a computer system
US8442697B2 (en) 2007-12-18 2013-05-14 Packet Digital Method and apparatus for on-demand power management
KR101459140B1 (en) 2007-12-26 2014-11-07 엘지전자 주식회사 Apparatus and method for controlling Power Management
US7949889B2 (en) * 2008-01-07 2011-05-24 Apple Inc. Forced idle of a data processing system
US8977790B2 (en) 2008-02-15 2015-03-10 Freescale Semiconductor, Inc. Peripheral module register access methods and apparatus
US8156362B2 (en) 2008-03-11 2012-04-10 Globalfoundries Inc. Hardware monitoring and decision making for transitioning in and out of low-power state
US8010822B2 (en) * 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US8028181B2 (en) 2008-09-19 2011-09-27 Intel Corporation Processor power consumption control and voltage drop via micro-architectural bandwidth throttling
US8386807B2 (en) 2008-09-30 2013-02-26 Intel Corporation Power management for processing unit
US8402290B2 (en) 2008-10-31 2013-03-19 Intel Corporation Power management for multiple processor cores
US8954977B2 (en) 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
US8219831B2 (en) * 2009-01-28 2012-07-10 Oracle America, Inc. Reducing temperature and power by instruction throttling at decode stage of processor pipeline in time constant duration steps
US8700943B2 (en) 2009-12-22 2014-04-15 Intel Corporation Controlling time stamp counter (TSC) offsets for mulitple cores and threads
US8356194B2 (en) * 2010-01-28 2013-01-15 Cavium, Inc. Method and apparatus for estimating overshoot power after estimating power of executing events
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8949637B2 (en) 2011-03-24 2015-02-03 Intel Corporation Obtaining power profile information with low overhead

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150091915A1 (en) * 2013-09-27 2015-04-02 Linda L. Hurd Current change mitigation policy for limiting voltage droop in graphics logic
US9250910B2 (en) * 2013-09-27 2016-02-02 Intel Corporation Current change mitigation policy for limiting voltage droop in graphics logic
WO2016130282A1 (en) * 2015-02-13 2016-08-18 Intel Corporation Performing power management in a multicore processor
US9910481B2 (en) 2015-02-13 2018-03-06 Intel Corporation Performing power management in a multicore processor
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US10775873B2 (en) 2015-02-13 2020-09-15 Intel Corporation Performing power management in a multicore processor
US10565079B2 (en) 2017-09-28 2020-02-18 Intel Corporation Determination of idle power state
WO2020205182A1 (en) 2019-03-29 2020-10-08 Intel Corporation Performing soft throttling and hard throttling in a processor
EP3948487A4 (en) * 2019-03-29 2023-01-04 Intel Corporation PERFORMING SOFT THROTTLING AND HARD THROTTLING IN ONE PROCESSOR

Also Published As

Publication number Publication date
KR20130124575A (en) 2013-11-14
GB2503367A (en) 2013-12-25
DE112012001358B4 (en) 2016-08-18
TWI628537B (en) 2018-07-01
WO2012129147A3 (en) 2013-03-14
KR101591811B1 (en) 2016-02-05
KR20150016614A (en) 2015-02-12
CN103492976B (en) 2017-11-07
GB201316089D0 (en) 2013-10-23
JP2014514641A (en) 2014-06-19
DE112012001358T5 (en) 2013-12-24
JP5985708B2 (en) 2016-09-06
US9075614B2 (en) 2015-07-07
US9069555B2 (en) 2015-06-30
US20130232368A1 (en) 2013-09-05
CN103492976A (en) 2014-01-01
JP2015165434A (en) 2015-09-17
KR101515318B1 (en) 2015-04-24
GB2503367B (en) 2020-10-21
TW201303573A (en) 2013-01-16
US20120254643A1 (en) 2012-10-04

Similar Documents

Publication Publication Date Title
US9069555B2 (en) Managing power consumption in a multi-core processor
US9323316B2 (en) Dynamically controlling interconnect frequency in a processor
US7870407B2 (en) Dynamic processor power management device and method thereof
US9092218B2 (en) Methods and apparatus to improve turbo performance for events handling
KR101703467B1 (en) Dynamic voltage and frequency management based on active processors
US8261112B2 (en) Optimizing power consumption by tracking how program runtime performance metrics respond to changes in operating frequency
US8006108B2 (en) Dynamic selection of group and device power limits
EP4273666A2 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
US11868192B2 (en) Systems and methods for coherent power management
US20080091965A1 (en) Discrete power control of components within a computer system
US11960340B2 (en) Performance management during power supply voltage droop
WO2024006020A1 (en) Adaptive power throttling system
CN104885032A (en) Computing systems and processors with fast power surge detection and instruction throttling to provide low cost power supply units
CN117546121A (en) System and method for controlling current supply in a multiprocessor core system by reducing the number of instructions per cycle
US7870400B2 (en) System having a memory voltage controller which varies an operating voltage of a memory and method therefor
US20240272699A1 (en) Power management

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12761529

Country of ref document: EP

Kind code of ref document: A2

ENP Entry into the national phase

Ref document number: 1316089

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20120319

WWE Wipo information: entry into national phase

Ref document number: 1316089.0

Country of ref document: GB

ENP Entry into the national phase

Ref document number: 20137024802

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2014501164

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1120120013581

Country of ref document: DE

Ref document number: 112012001358

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12761529

Country of ref document: EP

Kind code of ref document: A2