EP2457139A1 - Altering performance of computational units heterogeneously according to performance sensitivity - Google Patents

Altering performance of computational units heterogeneously according to performance sensitivity

Info

Publication number
EP2457139A1
EP2457139A1 EP10737218A EP10737218A EP2457139A1 EP 2457139 A1 EP2457139 A1 EP 2457139A1 EP 10737218 A EP10737218 A EP 10737218A EP 10737218 A EP10737218 A EP 10737218A EP 2457139 A1 EP2457139 A1 EP 2457139A1
Authority
EP
European Patent Office
Prior art keywords
performance
computational units
power
cores
group
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.)
Withdrawn
Application number
EP10737218A
Other languages
German (de)
English (en)
French (fr)
Inventor
Sebastien Nussbaum
Alexander Branover
John Kalamatianos
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/508,935 external-priority patent/US8443209B2/en
Priority claimed from US12/508,902 external-priority patent/US20110022356A1/en
Priority claimed from US12/508,929 external-priority patent/US8447994B2/en
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of EP2457139A1 publication Critical patent/EP2457139A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/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

Definitions

  • This invention relates to power allocation in computer systems and more particularly to allocating power to improve performance.
  • Processors run at various performance levels in an effort to match power consumption to work load requirements.
  • the performance levels are typically determined by
  • an embodiment enables analysis of workload executed on computational units, such as processing cores and graphics processing units, based on a power allocation strategy based on a computational unit's performance sensitivity to a change in performance capability resulting from, e.g., a frequency change, and available power headroom in the system - to improve system performance within a constant power envelope.
  • a method for operating a computer system that includes a plurality of computational units.
  • the method includes altering performance of one or more of the computational units according to respective performance sensitivities of the computational units.
  • the method may include altering performance of the one or more computational units according to which of the one or more computational units has a higher performance sensitivity than others of the computational units.
  • the method further includes, wherein the computational units include a group of processing cores, if a predicted power margin resulting from boosting performance of the group of processing cores is less than zero, removing from the group a core with lower boost sensitivity than others in the group to form a smaller group; and calculating a new predicted power margin and determining if the new predicted power margin is greater than zero if performance of the cores in the smaller group is boosted. If the new predicted power margin is greater than zero, the performance of the cores in the smaller group is boosted.
  • the cores in the smaller group may be boosted by increasing at least a frequency of clock signals being supplied to the cores in the smaller group.
  • the performance sensitivities of the respective computational units may be determined according to first and second performance metrics of the respective computational units determined at first and second performance levels.
  • an apparatus in another embodiment, includes a plurality of computational units.
  • the apparatus further includes a storage to store performance sensitivities for respective computational units.
  • a power allocation function implemented in hardware, firmware, and/or software, boosts performance of one or more of the computational units according to the performance sensitivities.
  • the power allocation function is responsive to which one or more of the computational units has a higher performance sensitivity than others of the computational units.
  • the power allocation function may be configured to compare the performance sensitivity of each of the computational units to a threshold value and to boost computational units having a performance sensitivity higher than the threshold.
  • the power allocation function may be responsive to a predicted power margin not being sufficient to boost all of a group of cores to a boosted performance state, to remove one or more computational units from the group of computational units, and recalculate a new predicted power margin, the removal being determined according to the one or more computational units from the group having respective performance sensitivities lower than performance sensitivities of other ones of the computational units of the group The removal and recalculation is repeated until the new predicted power margin is greater than zero to thereby accommodate boosting performance of remaining ones of the computational units.
  • Fig. 1 shows a high-level block diagram of an exemplary System on a Chip (SOC) system according to an embodiment of the invention.
  • SOC System on a Chip
  • Fig. 2 illustrates a high-level flow diagram for profiling performance sensitivity to core frequency changes according to one embodiment of the invention.
  • Fig. 3 illustrates frequency training at a system block diagram level.
  • Fig. 4 illustrates additional aspects of frequency training.
  • Fig. 5 illustrates an exemplary flow diagram of power reallocation according to an embodiment of the invention.
  • Fig. 6 illustrates an exemplary flow diagram for throttling computational units according to frequency sensitivity.
  • the use of the same reference symbols in different drawings indicates similar or identical items.
  • a core in PO (highest performance state set by the operating system (OS)) may be over-clocked by reallocating power headroom available on the other core(s) whose performance state is below some threshold (defined by a lower performance state).
  • OS operating system
  • the above approaches for homogenously increasing power to all cores or to one or more cores based on performance states of the cores allow for power to be reallocated from idle computational units, such as the CPU or graphical processing unit (GPU), but treat all active units homogeneously when dithering frequency or boosting steady state frequency.
  • active cores or other computational units may be gaining little or no performance increase from a higher core frequency, while other cores or computational units may be running workloads with a higher sensitivity to an increase in core frequency.
  • Selectively distributing power among the active cores or other computational units based on frequency sensitivity allows for greater overall system throughput on heterogeneous workloads or multithreaded workloads with heterogeneous threads. That requires an effective approach to identify workload sensitivity to changes in core frequency.
  • Fig. 1 shows a high-level view of an exemplary System on a Chip (SOC) 100 incorporating an embodiment of the invention.
  • the SOC 100 includes multiple CPU processing cores 101, a GPU (Graphics Processing Unit) 103, an I/O Bridge 105 (named South-Bridge in some embodiments) and a North-Bridge 107 (which may be combined with the Memory Controller in some embodiments).
  • the power allocation controller 109 is the functional element that controls allocation of the Thermal Design Point (TDP) power headroom to the on-die or on-platform components.
  • the performance analysis control logic 111 analyzes performance sensitivity of the cores and other computational units as described further herein. Note that while the power allocation control 109 and performance analysis center 111 are shown as being part of the North-Bridge 107, in other embodiments they may be located elsewhere in the SOC 100.
  • a TDP (Thermal Design Point) represents the power that can be consumed by the entire SOC and depends on such factors as the form-factor, available cooling solution, AC adapter/battery, and voltage regulator.
  • the SOC performance is optimized within the current TDP and in an embodiment, the power limit corresponding to the TDP is never exceeded.
  • the SOC power limit is the SOC TDP Limit.
  • SOC characterization is typically based on allocating maximum power for each of the on-die components while staying within the SOC TDP Limit. That occurs by setting the highest operational point (in frequency (F) and voltage (V)) so that even maximally anticipated activity executed at this operational point will not cause the power to exceed the allocated envelope. For example, assume that maximum power of a 4-Core SOC is limited by a 4Ow TDP envelope. Table 1 itemizes the power budget allocated for each of the on-die components:
  • the 8w power budget is a limit that defines the highest nominal operational point (F 5 V) of the core and the 5w power budget does the same for the GPU. That allocation, however, is conservative and only a nominal maximum since it assumes simultaneous utilization of all on-die components.
  • Most real-world applications are either CPU or GPU-bounded. Even if an application engages both computing engines (e.g., playback video off-loads some tasks to the processor cores), it does not utilize all 4 processor cores. Even CPU-bounded client applications mostly utilize 1-2 processor cores (1-2 thread workloads) and only a few of them have sufficient parallelism for utilizing all 4 cores for long periods of time.
  • An embodiment provides reallocation of the power from idle or less active components to the busy components by having more power allocated to the busy ones. For example, in a workload sample where 2 out of 4 cores are idle and GPU operates at half power, then the power budget table reflecting this state is shown in Table 2:
  • CoreO and Corel are allocated 16.75w to improve overall CPU throughput.
  • the operational point (F ,V) of both cores may be increased to fill the new power headroom (16.75w instead of 8w).
  • the power budget of only one core can be increased to 25.5w, while the other core can be left with an 8w power budget.
  • the core with the increased power budget may be boosted to an even higher operational point (F,V), so that the new power headroom (25.5 w) can be exploited.
  • the decision whether to equally boost two cores or provide all available power headroom to one core is dependent on what is the best way to improve the overall SOC performance.
  • one way to determine how to allocate power between CoreO and Corel to try and achieve improved performance gain is to know which of the two cores, if any, can better exploit an increase in performance capability provided, e.g., by an increase in frequency.
  • Changes in performance capability may also be provided by, e.g., a change in the amount of cache available to the core, the number of pipelines operating in the core, and/or the instruction fetch rate.
  • performance sensitivity of each computational unit to frequency change and/or other change in performance capability also referred to herein as boost sensitivity, is determined and stored on a computational unit basis. Referring to Fig.
  • a pre-defined low frequency clock signal is applied to the CPU core being analyzed for a predetermined or programmable interval, e.g., a lOOus-lOms interval.
  • the hardware performance analysis control logic samples and averages core instructions per cycle (IPC) (as reported by the core).
  • the performance analysis control logic determines a first instructions per second (IPS) metric based on the IPC x Core frequency (the low frequency or first performance level) as a first performance metric.
  • the IPS metric may be stored in a temporary register "A".
  • the performance analysis control logic causes a pre-defined high frequency clock signal to be applied to the CPU core being analyzed for the same predetermined or programmable time interval.
  • the performance analysis control logic again samples and averages core IPC (as reported by the core) in 207.
  • the performance analysis control logic determines a second instructions per second (IPS) metric based on the IPC x Core frequency (the high frequency or second performance level) and stores the second IPS metric in a temporary register "B" as a second performance metric.
  • the performance analysis control logic determines the numerical difference between A and B in 209 and stores the result as the performance sensitivity in a performance or boost sensitivity table along with the core number being analyzed and the process context number running on the CPU core during the analysis. Note that other changes in performance capability may be utilized instead of, or in conjunction with, frequency changes to determine boost sensitivity.
  • the context number may be determined by the content of the CR3 register or a hash of the CR3 register to allow for a shorter number to be stored.
  • This numerical difference represents the boost sensitivity for the core. That is, it represents the sensitivity of the core, running that particular process context, to a change in frequency. The greater the sensitivity, the more performance increase is to be gained by increasing the frequency.
  • the same training shown in Fig. 2 is applied to each of the processor cores and to any other component that can be boosted (over-clocked) above its nominal maximum power value and the values are stored in the boost sensitivity table.
  • the values in the boost sensitivity table may be sorted in descending order starting with the core or other on-die component with the highest boost sensitivity.
  • frequency sensitivity training is applied to all computational units whose frequency can be changed to implement various performance states, regardless of whether they can be clocked (or overclocked) above a nominal power level. In that way, systems can still allocate power budget to cores (or other computational units) that are more sensitive to frequency change and away from cores that are less sensitive to a change in frequency. In that way, cores or other computational units may have their frequency reduced to save power without a significant performance decrease for the SOC.
  • Fig. 3 illustrates frequency training at a system block diagram level.
  • Training core 301 is representative of the frequency training for each core.
  • the clock generator 303 as controlled by the performance analysis control logic 111, supplies the high and low frequency clock signals to core 301 during the frequency period.
  • the core 301 supplies the instructions per cycle value to the performance analysis control logic 111, which controls the process in accordance with Fig. 2.
  • Fig. 4 illustrates an instruction per cycle
  • Boost sensitivity table 407 stores for each
  • boost sensitivity expressed, e.g., as Instructions Per Second (IPS) computed via Average IPC x Core Frequency.
  • IPS Instructions Per Second
  • the boost sensitivity table may be storage within the SOC 100 (Fig. 1) or elsewhere in the computer system.
  • the boost sensitivity for each core is tied to the current processor context, which can be approximated by the x86 register value of CR3, tracked by the North-Bridge. In one embodiment, when the context changes, the sensitivity is re-evaluated. In another embodiment, the boost sensitivity expires for each context based on a fixed or
  • both a timer and context switch, whichever occurs first, are used to initiate the boost sensitivity reevaluation.
  • Fig. 2 may be implemented in hardware (e.g., state machines in performance analysis control block 111), in firmware (in microcode or a microcontroller), or in software (e.g., a driver, BIOS routine or higher level software).
  • Software may be responsible to kick off the low and high frequency clock signals, receive the IPC values, average the IPC values and perform the other functions described in relation to Fig. 2.
  • the software may be stored in computer readable electronic, optical, magnetic, or other kinds of volatile or non- volatile memory in the computer system of Fig. 1 and executed by one or more of the cores.
  • the frequency sensitivity training illustrated in Fig.
  • software may be responsible for maintaining the boost sensitivity table, reading the CR3 register to determine process context, and maintaining software timers to re-determine boost sensitivity, while the hardware, when notified by the software, applies the clocks with the first and second frequencies for the appropriate time period and determines the average IPC.
  • the software may be responsible for determining the IPS values. Power Budget Reallocation
  • the Boost Sensitivity Table (BST) is maintained as a result of a frequency sensitivity training session for the components to be potentially boosted.
  • BST Boost Sensitivity Table
  • a frequency sensitivity table is maintained as a result of the frequency sensitivity training for all components whose performance can be adjusted, typically through adjusting frequency (and voltage if necessary).
  • power budget reallocation uses the information in the BST to decide which on-die component(s) are the most sensitive to boosting and thus "deserve" to get a higher TDP power margin reallocated when a reallocation takes place.
  • a particular processor core may be in one of N performance states.
  • a performance state is characterized by a unique pair of core voltage and frequency values. The highest performance state is typically selected and characterized so that any anticipated activity will not cause the core power (dynamic + static) to exceed the power budget allocated for the core.
  • the core performance state is defined by the operating system software guided by current core utilization. In other embodiments, the core performance state may be specified by hardware, based on the context currently executed by the core. Table 3 shows performance states for an exemplary system having four performance states (PO, Pl, P2, and P3) that the operating system (OS) (or any other high-level software) may utilize for each core, depending on the core utilization over a time-interval.
  • OS operating system
  • the time- interval in one exemplary operating system ranges from 1msec to 100msec.
  • Two idle states are used when the OS (or any other high-level SW) sets the core to a low C-state.
  • a C-state is a core power state.
  • the core may be placed either in an IDLE state (when it is expected to be idle for a short time) or in a deep C-state.
  • the highest operational point (P -boost) is the one when core power (CoreBoostPwr) exceeds the nominal maximal power budget allocated for that specific core. Table 3
  • the GPU Power state is traditionally controlled by software (the graphics driver). In other embodiments, it may also be controlled by hardware tracking the GPU activity and receiving information from other graphic-related engines (Unified Video Decoder (UVD), Display, etc.). In one exemplary embodiment, the GPU may be in one of four power states, as shown in Table 4.
  • only two on-die components may be boosted to a higher performance point.
  • the I/O module and the memory controller may contribute to the boosting process of the cores or the GPU by reallocating their "unused" power budget to these components, but they cannot be boosted themselves.
  • the memory controller may be boosted as well by transitioning the Dynamic Random Access Memory (DRAM) and its own frequency to a higher operational point.
  • DRAM Dynamic Random Access Memory
  • SOC TDP Margin SOC TDP Limit - ⁇ Core (i) Pwr - GPU Pwr - Memory Controller Pwr - I/O Bridge Pwr. Any change in the state of the on-die components triggers an update of the SOC TDP Margin value. In one embodiment, the change of state that triggers the update is a change in performance or power state or change in application/workload activity.
  • the change of state triggering the update may be a process context change, or either a process context change or a performance state change.
  • any event resulting in a change in power consumed by the component such as a change in performance/power state or change in application/workload activity, can function as the change of state triggering event.
  • the power of a particular computational unit is based on the frequency of the clock signal, the supply voltage, and the amount of activity in the computational unit.
  • the average workload activity can be calculated as an average number of signal toggles across the computational unit over the interval, or average IPC over the interval. Power calculations may utilize software methods as well in which the software (e.g., a driver) is aware of the application activity running in the computational unit and determines average power using a similar approach to that described above.
  • software e.g., a driver
  • only a core residing in a PO-state and the GPU residing in GPU PO-state can be reallocated power from the other on-die components and boosted to a higher performance point. That is based on the observation that a core being in the PO-state or a GPU being in the GPU PO-state are essentially hints (provided by the OS or some high- level SW such as the graphics driver) that the currently executed task is computationally bounded.
  • the core and/or the GPU may be boosted when they reside in other non-idle states.
  • Fig. 5 illustrates an exemplary flow diagram of operation of an embodiment of the power allocation controller 109 (Fig. 1) to allocate power.
  • the power allocation controller waits for a state change for any of the on-die components, e.g., a performance state, application/activity change, or process context change.
  • a state change occurs, the TDP SOC Margin is tracked in 503 and a determination is made in 505 whether the margin is greater than 0. If it is not, the flow goes to 501. If the margin is greater than zero, meaning that there is headroom to boost one or more cores, a check is made to see if any CPU core is in the PO state in 507. In this particular embodiment, only cores in PO can be boosted.
  • the New TDP SOC Margin is the predicted margin value assuming all cores in PO are boosted.
  • TDP SOC Margin is the current margin value.
  • CoreBoostPwr is the core power when boosted and Core Pwr is the current core power in the PO state.
  • the power allocation controller checks in 511 if that new margin is greater than zero. If so, there is sufficient headroom to boost all PO cores, and that is done in 515 and the TDP SOC Margin is updated. The flow then returns to 501 to await another state change.
  • the flow goes to 517 to find some margin if possible.
  • Those cores with the highest sensitivity are identified. That may be done, e.g., by accessing the boost sensitivity table provided by the boost sensitivity training discussed above.
  • the cores in the PO state are ordered, e.g., in decreasing order of boost sensitivity. Thus, those at the bottom are least sensitive to a frequency increase.
  • the power allocation controller removes a core with the lowest boost sensitivity from the list and re-calculates the New TDP SOC Margin as in 509 for all cores still on the list.
  • all cores having a boost sensitivity below a predetermined or programmable threshold are removed from the list at the same time.
  • the rationale for that is to not waste power by boosting cores whose performance will not be increased.
  • the New TDP SOC Margin is > 0, those PO cores still on the list are transitioned to P-boost and the TDP SOC Margin is updated.
  • the power allocation controller checks to see if the GPU is in the GPU PO state. If not, the flow returns to 501 to await a state change.
  • the power allocation controller determines if there is sufficient headroom to boost the GPU in 525 by calculating a New TDP SOC Margin by subtracting the difference between boosted and current power for the GPU from the current TDP SOC Margin. In 527, the power allocation controller checks to see if the new margin is greater than zero, and if so, transitions the GPU to its boosted state and updates the TDP SOC Margin and returns to 503 to await another state change in any of the components. If there is not sufficient margin, the flow returns to 503.
  • one embodiment has been described for allocating power to those computational units in the PO state when there is sufficient margin and finding that margin by eliminating those computational units that are less sensitive to a frequency boost.
  • the frequency boost is only provided, e.g., to those computational units with a sufficiently high boost sensitivity, e.g., above a predetermined or programmable threshold, to warrant the extra power. In that way, increased performance can be provided while still trying to maintain reduced power consumption where possible.
  • Fig. 5 may be implemented in hardware (e.g., state machines), in firmware (in microcode or a microcontroller), or in software (e.g., a driver, BIOS routine or higher level software), or any appropriate combination of hardware and software to allocate power based on boost sensitivity.
  • software may be notified of a change in state of any component and implement the approach described in relation to Fig. 5.
  • the software may be stored in computer readable electronic, optical, or magnetic volatile or non- volatile memory in the computer system of Fig. 1 and executed by one or more of the cores.
  • the functionality of Fig. 5 is implemented partly in hardware and partly in software according to the needs and capabilities of the particular system.
  • boost sensitivity information can be utilized in various ways by the SOC.
  • Central processing unit (CPU) throttling is one example of such utilization.
  • a GPU- bounded application is being executed. That is, the application being executed on the GPU is limited by the performance of the GPU, because, e.g., a current performance state is lower than needed for the particular application.
  • a GPU-bounded or CPU-bounded application is identified based data indicating how busy a particular core or GPU is.
  • a CPU-bounded (or compute-bounded) application an application limited by the performance of one or more processing cores
  • a GPU-bounded application is an application limited by performance of the GPU.
  • Fig. 6 shows a high-level flow diagram of performance throttling based on boost sensitivity information.
  • CPU-bounded or GPU-bounded applications are identified.
  • the stored boost or performance sensitivity information is reviewed and in 605, a subset of computational units, e.g., processing cores, are identified to throttle based on the subset of the cores being less sensitive in terms of performance to a reduction in performance capability, e.g., a reduction in frequency, voltage, the amount of cache available to a core, the number of pipelines operating in the core, and/or the instruction fetch rate.
  • a reduction in performance capability e.g., a reduction in frequency, voltage, the amount of cache available to a core, the number of pipelines operating in the core, and/or the instruction fetch rate.
  • the performance of the subset is limited and the power headroom made available through throttling is provided in 609 to the computational unit(s) executing the CPU-bounded and/or GPU-bounded application.
  • the functionality described in Fig. 6 may be implemented in the power allocation controller 109 or in high-level software or utilizing both hardware and software.
  • the GPU may be throttled by either forcing a GPU P-state limit lower than GPU PwrO or by throttling its instruction/memory traffic stream. If the throttled GPU power is equivalent to GPU_Pwr2, then the extra power margin, GPU PwrO - GPU_Pwr2, can be reallocated for boosting one or more of the CPU cores, depending on the boost sensitivity table values.
  • memory may also be throttled.
  • One way is to stall every other access to DRAM by a number of cycles, thus reducing the dynamic part of DRAM I/O and DRAM DIMM power by a factor close to 2.
  • Another approach may involve shutting down a number of the available memory channels, also releasing a given percentage of the DRAM I/O and DRAM DIMM power.
  • Reduced DRAM I/O power may be reallocated to either the GPU or CPU cores depending on the utilization of these components and the BST values (as far as the CPU cores are concerned), thus leading to higher overall SOC performance throughput.
  • DIMM may not be part of the SOC in which case its power budget is not part of SOC TDP. However, in circumstances where the reduced DRAM DIMM power margin can be reallocated back to the SOC TDP, the extra margin can be used to boost the GPU or some of the CPU cores. While circuits and physical structures are generally presumed for some embodiments of the invention, it is well recognized that in modern semiconductor design and fabrication, physical structures and circuits may be embodied in computer-readable descriptive form suitable for use in subsequent design, test or fabrication stages. Structures and functionality presented as discrete components in the exemplary configurations may be implemented as a combined structure or component.
  • a computer-readable medium includes at least disk, tape, or other magnetic, optical, semiconductor (e.g., flash memory cards, ROM), or electronic medium.
  • a computer-readable medium includes at least disk, tape, or other magnetic, optical, semiconductor (e.g., flash memory cards, ROM), or electronic medium.
  • a graphical processing unit (GPU) and processor may be separate integrated circuits packaged together or separately.
  • GPU graphical processing unit
  • Variations and modifications of the embodiments disclosed herein may be made based on the description set forth herein without departing from the scope of the invention as set forth in the following claims.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Saccharide Compounds (AREA)
  • Steroid Compounds (AREA)
EP10737218A 2009-07-24 2010-07-23 Altering performance of computational units heterogeneously according to performance sensitivity Withdrawn EP2457139A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US12/508,935 US8443209B2 (en) 2009-07-24 2009-07-24 Throttling computational units according to performance sensitivity
US12/508,902 US20110022356A1 (en) 2009-07-24 2009-07-24 Determining performance sensitivities of computational units
US12/508,929 US8447994B2 (en) 2009-07-24 2009-07-24 Altering performance of computational units heterogeneously according to performance sensitivity
PCT/US2010/043032 WO2011011670A1 (en) 2009-07-24 2010-07-23 Altering performance of computational units heterogeneously according to performance sensitivity

Publications (1)

Publication Number Publication Date
EP2457139A1 true EP2457139A1 (en) 2012-05-30

Family

ID=42953822

Family Applications (1)

Application Number Title Priority Date Filing Date
EP10737218A Withdrawn EP2457139A1 (en) 2009-07-24 2010-07-23 Altering performance of computational units heterogeneously according to performance sensitivity

Country Status (6)

Country Link
EP (1) EP2457139A1 (ja)
JP (1) JP5564564B2 (ja)
KR (1) KR20120046232A (ja)
CN (1) CN102483646B (ja)
IN (1) IN2012DN00933A (ja)
WO (3) WO2011011670A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5601236B2 (ja) * 2011-02-10 2014-10-08 富士通株式会社 情報抽出プログラム、情報抽出方法、および情報抽出装置
US20120297232A1 (en) * 2011-05-16 2012-11-22 Bircher William L Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value
JP5958395B2 (ja) * 2013-03-22 2016-08-02 日本電気株式会社 コンピュータシステム
US9703613B2 (en) * 2013-12-20 2017-07-11 Qualcomm Incorporated Multi-core dynamic workload management using native and dynamic parameters
US9348380B2 (en) * 2013-12-28 2016-05-24 Samsung Electronics Co., Ltd. Dynamic thermal budget allocation for memory array
JP5986138B2 (ja) * 2014-05-09 2016-09-06 レノボ・シンガポール・プライベート・リミテッド 複数のプロセッサに電力を供給する電源装置の出力を制御する方法、電源システムおよび情報処理装置
US20160077576A1 (en) * 2014-09-17 2016-03-17 Abhinav R. Karhu Technologies for collaborative hardware and software scenario-based power management
US9882383B2 (en) * 2014-12-23 2018-01-30 Intel Corporation Smart power delivery network
US9572104B2 (en) 2015-02-25 2017-02-14 Microsoft Technology Licensing, Llc Dynamic adjustment of user experience based on system capabilities
JP2016177689A (ja) 2015-03-20 2016-10-06 株式会社東芝 メモリシステム
CN108139960B (zh) * 2016-04-18 2020-07-07 华为技术有限公司 中央处理器cpu的调频方法、调频装置和处理设备
US10474221B2 (en) * 2018-01-30 2019-11-12 Hewlett Packard Enterprise Development Lp Power control in a storage subsystem
US11379337B2 (en) * 2018-06-21 2022-07-05 Hewlett-Packard Development Company, L.P. Increasing CPU clock speed to improve system performance
WO2021021185A1 (en) * 2019-07-31 2021-02-04 Hewlett-Packard Development Company, L.P. Configuring power level of central processing units at boot time
CN110442224A (zh) * 2019-09-17 2019-11-12 联想(北京)有限公司 电子设备的电源功率分配方法、电子设备和可读存储介质
KR102103842B1 (ko) * 2019-10-02 2020-05-29 한화시스템 주식회사 차세대 함정 전투체계의 트래픽 모델링 장치
CN114816033A (zh) * 2019-10-17 2022-07-29 华为技术有限公司 处理器的调频方法及装置、计算设备
KR102275529B1 (ko) * 2019-12-23 2021-07-09 주식회사 텔레칩스 멀티-마스터를 지원하는 그래픽 처리 장치를 공유하는 시스템 온 칩 및 그래픽 처리 장치의 동작 방법
CN113078933B (zh) * 2020-01-03 2023-01-24 内蒙古龙图电气有限公司 一种基于北斗卫星通信的组网式终端控制器
US11971774B2 (en) * 2020-10-13 2024-04-30 Nvidia Corporation Programmable power balancing in a datacenter
CN116521355A (zh) * 2022-01-30 2023-08-01 台达电子企业管理(上海)有限公司 提升处理器峰值算力的方法、用于提升处理器峰值算力的系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253715A1 (en) * 2005-05-03 2006-11-09 International Business Machines Corporation Scheduling processor voltages and frequencies based on performance prediction and power constraints

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10268963A (ja) * 1997-03-28 1998-10-09 Mitsubishi Electric Corp 情報処理装置
US20020087904A1 (en) * 2000-12-28 2002-07-04 Zhong-Ning (George) Cai Method and apparatus for thermal sensitivity based dynamic power control
US7490254B2 (en) * 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
US7412353B2 (en) * 2005-09-28 2008-08-12 Intel Corporation Reliable computing with a many-core processor
US7971073B2 (en) * 2005-11-03 2011-06-28 Los Alamos National Security, Llc Adaptive real-time methodology for optimizing energy-efficient computing
CN101241392B (zh) * 2007-03-01 2012-07-04 威盛电子股份有限公司 根据工作温度的变化来动态改变功耗的微处理器及方法
US20080307240A1 (en) * 2007-06-08 2008-12-11 Texas Instruments Incorporated Power management electronic circuits, systems, and methods and processes of manufacture

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253715A1 (en) * 2005-05-03 2006-11-09 International Business Machines Corporation Scheduling processor voltages and frequencies based on performance prediction and power constraints

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MENG KE ET AL: "Multi-optimization power management for chip multiprocessors", no. 17TH, 25 October 2008 (2008-10-25), pages 177 - 186, XP002628724, ISBN: 1-60558-282-5, Retrieved from the Internet <URL:http://delivery.acm.org/10.1145/1460000/1454141/p177-meng.pdf?key1=1454141&key2=5142730031&coll=DL&dl=ACM&ip=145.64.134.241&CFID=12364752&CFTOKEN=91806538> [retrieved on 20110316] *
See also references of WO2011011670A1 *
TEODORESCU R ET AL: "Variation-Aware Application Scheduling and Power Management for Chip Multiprocessors", COMPUTER ARCHITECTURE, 2008. ISCA '08. 35TH INTERNATIONAL SYMPOSIUM ON, IEEE, PISCATAWAY, NJ, USA, 21 June 2008 (2008-06-21), pages 363 - 374, XP031281692, ISBN: 978-0-7695-3174-8 *

Also Published As

Publication number Publication date
WO2011011668A1 (en) 2011-01-27
KR20120046232A (ko) 2012-05-09
WO2011011670A1 (en) 2011-01-27
JP2013500520A (ja) 2013-01-07
CN102483646B (zh) 2015-06-03
WO2011011673A1 (en) 2011-01-27
JP5564564B2 (ja) 2014-07-30
CN102483646A (zh) 2012-05-30
IN2012DN00933A (ja) 2015-04-03

Similar Documents

Publication Publication Date Title
US8447994B2 (en) Altering performance of computational units heterogeneously according to performance sensitivity
US8443209B2 (en) Throttling computational units according to performance sensitivity
WO2011011670A1 (en) Altering performance of computational units heterogeneously according to performance sensitivity
US20110022356A1 (en) Determining performance sensitivities of computational units
KR101429299B1 (ko) 컴퓨터에 이용가능한 전력량에 기초하여 전력을 보존하는 컴퓨터 구현 방법, 컴퓨터상의 애플리케이션 프로그램들과 대화할 수 있는 기간을 연장하기 위한 소프트웨어 시스템, 및 컴퓨터 판독가능 매체
US8904205B2 (en) Increasing power efficiency of turbo mode operation in a processor
US9354689B2 (en) Providing energy efficient turbo operation of a processor
US8892916B2 (en) Dynamic core pool management
CN101379453B (zh) 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置
KR101476568B1 (ko) 코어 마다의 전압 및 주파수 제어 제공
US20140089699A1 (en) Power management system and method for a processor
US20090320031A1 (en) Power state-aware thread scheduling mechanism
GB2539748A (en) Configuring power management functionality in a processor
US11138037B2 (en) Switch policy for hybrid scheduling in multi-processor systems
WO2014042749A1 (en) Distributing power to heterogenous compute elements of a processor
US20140025967A1 (en) Techniques for reducing processor power consumption through dynamic processor resource allocation
US9075609B2 (en) Power controller, processor and method of power management
CN117546121A (zh) 用于通过减少每周期指令数来控制多处理器核心系统中的电流供应的系统和方法
Islam et al. Learning based power management for periodic real-time tasks

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20120223

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK SM TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20150210

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20150623