Peak power management for processing units

Some aspects of this disclosure relate to a peak power manager that includes a first power estimate accumulator circuit configured to receive one or more power estimates associated with one or more subsystems and to generate a first accumulated power estimate. The peak power manage can further include a first-in first-out (FIFO) storage circuit configured to store a plurality of first accumulated power estimates associated with a plurality of clock cycles corresponding to a moving time interval window. The peak power manager can further include a second power estimate accumulator circuit configured to accumulate the plurality of first accumulated power estimates to generate a second accumulated power estimate and a control circuit. The control circuit can be configured to compare the second accumulated power estimate with a threshold power and generate a control signal to control one or more events at the one or more subsystems in response to the second accumulated power estimate satisfying a condition associated with the threshold power.

BACKGROUND

Field

This disclosure generally relates to techniques for implementing peak power management.

Related Art

A processing unit (e.g., a central processing unit (CPU)) can use power management techniques to control its powers and reduce the amount of heat the CPU generates. In some examples, the power management techniques can include dynamic frequency scaling and/or dynamic voltage scaling. The power management techniques can help preserving battery on, for example, user devices (e.g., mobile devices). Additionally, or alternatively, the power management techniques can be used to reduce noise and/or cooling costs on the user devices. Some power management techniques can take several cycles (e.g., 70-90 clock cycles—e.g., 20-25 ns depending on clock frequency and type of event) to control the power in the CPU. The time used by the power management techniques can be larger than the time needed for some systems. For example, some systems cannot support transients that are greater than, for example, 10 ns.

SUMMARY

Some aspects of this disclosure include apparatuses and methods for implementing peak power management techniques. For example, some aspects of this disclosure are directed to peak power management techniques to address the problems discussed above. According to some aspects, a static peak power manager is disclosed that can employ direct instruction type based peak power management. Additionally, or alternatively, the static peak power manager of this disclosure can continuously (or substantially continuously) scan peak power across one or more cycle windows.

Some aspects of this disclosure relate to a peak power manager that includes a first power estimate accumulator circuit configured to receive one or more power estimates associated with one or more subsystems and to generate a first accumulated power estimate. The peak power manage can further include a first-in first-out (FIFO) storage circuit configured to store a plurality of first accumulated power estimates associated with a plurality of clock cycles corresponding to a moving time interval window. The peak power manager can further include a second power estimate accumulator circuit configured to accumulate the plurality of first accumulated power estimates to generate a second accumulated power estimate and a control circuit. The control circuit can be configured to compare the second accumulated power estimate with a threshold power and generate a control signal to control one or more events at the one or more subsystems in response to the second accumulated power estimate satisfying a condition associated with the threshold power.

In some aspects, the first power estimate accumulator circuit can be configured to generate the first accumulated power estimate from the one or more power estimates over a clock cycle. The second power estimate accumulator circuit can be configured to accumulate the plurality of first accumulated power estimates over the plurality of clock cycles corresponding to the moving time interval window.

In some aspects, the peak power manager can further include one or more multiplier circuits. Each of the one or more multipliers is configured to multiply each of one or more power indicators from a corresponding one of the one or more subsystems by a corresponding weight to generate a corresponding one of the one or more power estimates.

In some aspects, the peak power manager can further include a leakage consumption accumulator circuit configured to receive one or more leakage consumptions from the one or more subsystems and generate a total leakage consumption. The peak power manager can further include a second control circuit configured to compare the total leakage consumption with one or more leakage thresholds and to determine one or more parameters for the peak power manager based on the comparison. In some aspects, the one or more parameters for the peak power manager include the threshold power. In some aspects, each of the one or more leakage consumptions is determined based on a temperature of a corresponding one of the one or more subsystems.

In some aspects, the control circuit is configured to retrieve the threshold power from a memory, where the threshold power is based on a performance state of the one or more subsystems.

In some aspects, the control circuit can be further configured to receive one or more weights and a second threshold and compare the one or more weights with the second threshold. In response to the one or more weights satisfying a first condition associated with the second threshold, the control circuit can be configured to pass the control signal to the one or more subsystems to control the one or more events at the one or more subsystems. In response to the one or more weights satisfying a second condition associated with the second threshold, the control circuit can be configured to block the control signal to the one or more subsystems.

In some aspects, the peak power manager can further include a preemptive mitigation circuit configured to receive the second accumulated power estimate accumulated over the plurality of clock cycles and dynamically generate the threshold power.

Some aspects of this disclosure relate to a method including receiving, by a first power estimate accumulator circuit of a peak power manager, one or more power estimates associated with one or more subsystems and generating, by the first power estimate accumulator circuit, a first accumulated power estimate. The method can further include storing, using a first-in first-out (FIFO) storage circuit of the peak power manager, a plurality of first accumulated power estimates associated with a plurality of clock cycles corresponding to a moving time interval window. The method can also include accumulating, by a second power estimate accumulator circuit of the peak power manager, the plurality of first accumulated power estimates to generate a second accumulated power estimate. The method can further include comparing the second accumulated power estimate with a threshold power and generating a control signal to control one or more events at the one or more subsystems in response to the second accumulated power estimate satisfying a condition associated with the threshold power.

Some aspects of this disclosure relate to a non-transitory computer-readable medium storing instructions that when executed by a processor, cause the processor to perform operations including receiving one or more power estimates associated with one or more subsystems and generating a first accumulated power estimate from the one or more power estimates over a clock cycle. The operations can further include storing a plurality of first accumulated power estimates associated with a plurality of clock cycles corresponding to a moving time interval window. The operations can further include accumulating the plurality of first accumulated power estimates to generate a second accumulated power estimate over the plurality of clock cycles corresponding to the moving time interval window. The operations can further include comparing the second accumulated power estimate with a threshold power and generating a control signal to control one or more events at the one or more subsystems in response to the second accumulated power estimate satisfying a condition associated with the threshold power.

This Summary is provided for purposes of illustrating some aspects of this disclosure to provide an understanding of the subject matter described herein. Accordingly, the above-described features are examples and should not be construed to narrow the scope or spirit of the subject matter in this disclosure. Other features, aspects, and advantages of this disclosure will become apparent from the following Detailed Description, Figures, and Claims.

DETAILED DESCRIPTION

Some aspects of this disclosure include apparatuses and methods for implementing peak power management techniques. According to some aspects, a static peak power manager is disclosed that can employ direct instruction type based peak power management. Additionally, or alternatively, the static peak power manager of this disclosure can continuously (or substantially continuously) scan peak power across one or more cycle windows.

FIG.1illustrates an example system100implementing peak power management, according to some aspects of this disclosure. Example system100is provided for the purpose of illustration only and does not limit the disclosed aspects. System100may include, but it not limited to, subsystems103a-103n(also collectively referred to herein as subsystem103or a plurality of subsystems103) and peak power manager101.

According to some aspects, system100can be part of one or more electronic devices such as, but not limited to, wireless communication devices, smart phones (e.g., user equipment), laptops, desktops, tablets, personal assistants, monitors, multimedia devices (e.g., televisions), human interface devices, speaker devices, headphone devices, wearable devices, medical sensors, gaming devices, vehicle multimedia centers, Internet-of Things (IoT) devices, and the like.

According to some aspects, subsystems103can be part of one or more processor cores.

For example, subsystems103can be part of one or more processors, processor cores, execution units, etc. on a system-on-a-chip (SoC). According to some aspects, the output of subsystems103can include a number of issued instructions in each subsystem103. In some examples, the number of issued instructions can indicate the amount of activity generated in each subsystem103. Although some examples are discussed with respect to the number of issued instructions, other measures can be used as an indicator of the amount of activity generated in each subsystem103and therefore, as an indicator of the power consumed by each subsystem103. For example, one measure for indicating the power consumed by subsystem103can include the number of event(s) occurring on subsystem103.

In some examples, the instructions issued in subsystem103can include high power instructions. High power instructions may include one or more instructions from a set of instructions supported by a processor that have been previously identified as generating high power consumption during execution. For example, a floating-point (FP), single-instruction-multiple-data (SIMD) instruction type may have wide data lanes for processing vector elements during a multi-cycle latency. Data transitions on such wide data lanes may contribute to high switching power during the execution of such an instruction.

According to some aspects, subsystem103can send its corresponding indicator of the power consumed by subsystem103to peak power manager101. The indicator can include information regarding the power consumed by subsystem103. For example, as discussed above, the indicator can include, but is not limited to, the number of instructions (e.g., high power instructions) issued in each subsystem103. Peak power manager101can use the received indicators to estimate the power consumed by one or more of subsystems103. Based on the power estimate, peak power manager101can limit the number of instructions (e.g., high power instructions) being issued in subsystems103.

As discussed in more detail with respect toFIG.2, peak power manager101can be a peak power manager circuit that can include one or more circuits configured to determine a power estimate for each clock cycle to estimate the power consumed by one or more of subsystems103during that clock cycle. Peak power manager101can use a moving window (e.g., a moving time interval window using a first-in first-out (FIFO) storage device/circuit) to determine an accumulation of a number of power estimates over a number of clock cycles. Peak power manager101can compare the accumulated power estimates with a threshold power (e.g., an available budget). If the accumulated power estimate satisfies a condition (e.g., the accumulated power estimate is greater than the threshold power), peak power manager101can generate control signal120to limit the number of instructions (e.g., high power instructions) being issued in subsystems103.

According to some aspects, peak power manager101performs its peak power management operations without measuring the amount of currents in subsystems103a-103n. In contrast, peak power manager101can determine the accumulated power estimate and determine whether the accumulated power estimate satisfies a condition or not. Based on these determinations, peak power manager101can generate control signal120to, for example, limit the number of instructions being issued in subsystems103. In other words, instead of measuring absolute values, peak power manager101can measure and use relative power for its peak power management operations, according to some aspects.

According to some aspects, the operation of peak power manager101can involve looking up instructions by instruction types or instruction sub-types. In some examples, the number of classes can be kept to a minimum number to avoid a large latency. According to some examples, a weight (as a non-limiting example, a 2 bits weight) can be associated with each of the instruction sub-types that can categorize the relative power of that instruction sub-type to a largest power class. In this example, peak power manager101can measure the relative power in each clock cycle (e.g., instead of absolute power). The power can be relative to a threshold power (e.g., an available budget). In a non-limiting example, peak power manager101can measure the relative power as a percentage of the threshold power.

At the end of each clock cycle, peak power manager101can rotate the power estimate (for subsystems103) through, for example, an n-entry FIFO (e.g., FIFO storage device/circuit). Peak power manager101can use the accumulated power estimate accumulated over a number of clock cycles (e.g., corresponding to a moving time interval window) to generate control signal120to limit the number of instructions (e.g., high power instructions) being issued in subsystems103.

According to some aspects, peak power manager101can receive and/or retrieve one or more thresholds from a table (e.g., a Dynamic Voltage Frequency Management (DVFM) table) to determine whether or not peak power manager101will perform its peak power management techniques. In some examples, the threshold can be subsystem and/or state specific as the threshold can depend on voltage(s), frequenc(ies), number of cores, etc. In this example, peak power manager101can receive or retrieve one or more weights that indicate information associated with the activity of one or more subsystems103. Peak power manager101can compare the one or more weights with the threshold from the table. If the one or more weights satisfy a condition (e.g., the one or more weights are less than or equal to the threshold), peak power manager101can perform its peak power management techniques. Otherwise, peak power manager101can refrain from performing its peak power management techniques. In this example, peak power manager101can perform its operation for specific subsystems (e.g., subsystems with high performance states). In other words, peak power manager101can first determine if subsystems103are at risk of exceeding a peak power or not before peak power manager101can perform its operation.

According to some examples, state as discussed herein can refer to the amount of logic that is enabled in one or more of subsystems103a-130n. For example, a high performance state can refer to subsystems103a-130nwith high amount of logic enabled. For example, a low performance state can refer to subsystems103a-130nwith low amount of logic enabled. Subsystem(s) in the high performance state can in the risk of exceeding the peak power. In some examples, the state can also include the voltage and/or frequency associated with one or more of subsystems103a-130n.

FIG.2illustrates an example system200including peak power manager101, according to some aspects of this disclosure. Example system200is provided for the purpose of illustration only and does not limit the disclosed aspects. System200may include, but it not limited to, subsystems103a-103nand peak power manager101. Subsystems103a-103nand peak power manager101are similar to subsystems103a-103nand peak power manager101ofFIG.1. According to some aspects, peak power manager101is a static peak power manager.

FIG.2further illustrates an exemplary implementation of peak power manager101, according to some aspects. Peak power manager101can include other and/or additional circuits for implementing peak power management techniques of this disclosure.

As discussed above, peak power manager101can receive, from one or more subsystems103, one or more corresponding indicators of the power consumed by subsystem103, according to some aspects. The indicator can include information regarding the power consumed by subsystem103. For example, as discussed above, the indicator can include, but is not limited to, the number of instructions (e.g., high power instructions) issued in each subsystem103. Peak power manager101can use the received indicators to estimate the power consumed by one or more of subsystems103. In some examples, in order to generate the power estimate for each subsystem, the indicator from each subsystem is multiplied by a corresponding weight. For example, for subsystem103a, the indicator (e.g., the number of instructions) associated with subsystem103ais multiplied, using multiplier circuit201a, with weight202ato generate power estimate222a. For example, for subsystem103b, the indicator (e.g., the number of instructions) associated with subsystem103bis multiplied, using multiplier circuit201b, with weight202bto generate power estimate222b. For example, for subsystem103n, the indicator (e.g., the number of instructions) associated with subsystem103nis multiplied, using multiplier circuit201n, with weight202nto generate power estimate222n. According to some aspects, weights202a-202ncan be stored in a memory (e.g., the DVFM table). Peak power manager101can retrieve weights202a-202nfrom the memory. In some examples, weights202a-202ncan be subsystem and/or state specific as the weights202a-202ncan depend on voltage(s), frequenc(ies), number of cores, types/sub-types of instructions, etc.

According to some aspects, power estimates222a-222nare accumulated using power estimate accumulator circuit203to generate accumulated power estimate204. In some aspects, power estimate accumulator circuit203can include an adder circuit. According to some aspects, power estimate accumulator circuit203can generate accumulated power estimate204from power estimates222a-222nover one clock cycle. In some examples, accumulated power estimate204is an estimate of the power consumed by subsystems103a-103nin one clock cycle. According to some aspects, peak power manager101is configured to receive the indicators, generate power estimates222, and generate the accumulated power estimate204for each clock cycle.

According to some aspects, the generated accumulated power estimates for a plurality of clock cycles can be stored in storage device/circuit205. In some examples, storage device205can include a FIFO storage device/circuit. However, storage device205can include other types of circuits. By using storage device205, peak power manager101can store a plurality of accumulated power estimates over a plurality of clock cycles. In other words, storage device205can act as a moving window (a moving time interval window) for storing the plurality of accumulated power estimates over the plurality of clock cycles. In an example, storage device205can include an n-entry storage device (e.g., an n-entry FIFO storage device). In a non-limiting example, n-entry storage device205can be a 31-entry storage device. In some examples, a staging flip-flop can be arranged between power estimate accumulator circuit203and storage device205.

As illustrated inFIG.2, if storage device205is full (e.g., all entries of storage device205store the past n accumulated power estimates204), when a current accumulated power estimate204is generated, the oldest accumulated power estimate206is removed from storage device205. Additionally, peak power manager101can generate accumulated power estimate210over a plurality (e.g., n in the n-entry storage device example) of clock cycles. In this example, the oldest accumulated power estimate206is subtracted from the current (or the newest) accumulated power estimate204using adder circuit207to generate value208. Value208is added to (using adder circuit209) prior accumulated power estimate over clock cycles stored in memory211to generate the current accumulated power estimate210over clock cycles. According to some aspects, one or more of adder circuit207, adder circuit209, and memory211can be part of power estimate accumulator circuit231. Power estimate accumulator circuit231is configured to generate accumulated power estimate210over the plurality of clock cycles corresponding to the moving time interval window.

In each clock cycle, accumulated power estimate210(accumulated over the past n clock cycles) is compared with threshold power212(e.g., an available budget). Threshold power212can be determined as discussed below with respect toFIGS.3A-3C. Additionally, or alternatively, threshold power212can be stored in a memory (e.g., the DVFM table) to be retrieved by peak power manager101. In some examples, threshold power212can be subsystem and/or state specific as the threshold can depend on voltage(s), frequenc(ies), number of cores, etc.

According to some aspects, peak power manager101can include control circuit233. In some examples, control circuit233can include one or more comparators. For example, control circuit233can include one or more of comparator213, comparator217, and comparators309a-309cofFIG.3C. Additionally, or alternatively, control circuit233can perform operations of the one or more comparators (e.g., comparator213, comparator217, and/or comparators309a-309cofFIG.3C). According to some aspects, comparator213(e.g., a comparison circuit) compares accumulated power estimate210(accumulated over the past n clock cycles) with threshold power212. If accumulated power estimate210satisfies a condition (e.g., accumulated power estimate210is greater than threshold power212), control signal214is generated for limiting the number of instructions (e.g., high power instructions) being issued in subsystems103. However, if accumulated power estimate210does not satisfy the condition (e.g., accumulated power estimate210is less than or equal to threshold power212), peak power manager101does not generate control signal214. In this example, peak power manager101does not limit the number of instructions (e.g., high power instructions) being issued in subsystems103.

According to some aspects, control signal120(and/or control signal214) can limit the number of instructions being issued in all of subsystems103. For example, control signal120(and/or control signal214) can block the instructions being issued in all of subsystems103. Alternatively, control signal120(and/or control signal214) can limit the number of instructions (e.g., block the instructions) being issued in one or more of subsystems103. For example, peak power manager101can determine the one or more of subsystems103to send control signal120to them. In another example, peak power manager101can send control signal120to all of subsystems103, and the one or more subsystems103can use control signal120to limit their instructions.

According to some aspects, peak power manager101can receive and/or retrieve one or more thresholds216from a memory (e.g., the DVFM table) to determine whether or not to pass control signal214to subsystems103to limit the number of instructions (e.g., high power instructions) being issued in subsystems103. In some examples, threshold216can be subsystem and/or state specific as the threshold can depend on voltage(s), frequenc(ies), number of cores, etc. Threshold216can be a measure of whether a state is at risk of exceeding the peak power or not. For example, threshold216can indicate whether a state is a high performance state (e.g., subsystems103a-130nwith high amount of logic enabled), a medium performance state, or a low performance state (e.g., subsystems103a-130nwith low amount of logic enabled).

In this example, peak power manager101can also receive or retrieve one or more weights218that indicate information associated with the activity of one or more subsystems103. For example, one or more weights218can be based on the number of agents that are on in one or more subsystems103a-103n. In some examples, one or more weights218can change based on the activities of subsystems103a-103n. In some examples, one or more weights218are stored in a memory (e.g., the DVFM table) and can be retrieved by peak power manager101. Peak power manager101can compare one or more weights218with threshold216using comparator217. The output of comparator217and comparator213are input to and circuit215.

If one or more weights218satisfy a condition (e.g., one or more weights218are less than or equal to threshold216), comparator217(e.g., a comparison circuit) can output logic “1” to and circuit215. In this case, and circuit215can output control signal120to be the same as control signal214. Therefore, peak power manager101can perform its peak power management techniques. If one or more weights218do not satisfy the condition (e.g., one or more weights218are greater than threshold216), comparator217can output logic “0” to and circuit215. In this case, and circuit215will not send any control signal120to limit the number of instructions being issued in subsystems103. In this example, peak power manager101can first determine if subsystems103are at risk of exceeding a peak power or not before peak power manager101can perform its operation.

According to some aspects, the peak power management operations of peak power manager101can depend on the leakage consumption from threshold power212(e.g., the available budget). In other words, threshold power212can include a dynamic power component and a leakage consumption component. Given that peak power manager101is a relative power estimator for peak power management, the leakage consumption is also normalized, according to some aspects. In some examples, and as discussed in more detail below with respect toFIGS.3A-3C, the leakage consumption can be quantized into one or more regions. In these examples, the leakage consumption can be computed based on leakage estimates derived from temperatures of subsystems103and classified using, for example, an m-level comparator. Threshold power212can then be determined based on the computed leakage consumption. According to some aspects, threshold powers212for different regions can be stored in a memory (e.g., the DVFM table) and can be a function of, for example, number of subsystems activated, voltage, frequency conditions, etc.

FIGS.3A and3Billustrate an exemplary leakage consumption determination system300for use with peak power manager101, according to some aspects of the disclosure. Example system300is provided for the purpose of illustration only and does not limit the disclosed aspects. System300may include, but it not limited to, subsystems301a-301n, subsystems303a-303b, leakage consumption accumulator circuit305(e.g., an adder circuit), leakage thresholds307a-307m, and control circuit309. System300can include other and/or additional circuits. According to some aspects, system300is part of peak power manager101and/or is part of peak power manager400ofFIG.4.

According to some aspects, one or more of subsystems301a-301nand subsystems303a-303bcan include one or more of subsystems103a-103nofFIGS.1and2. In some examples, subsystems301a-301ncan include one or more processors, processor cores, execution units, etc. In some examples, subsystems303a-303bcan include other aganets, memories such as caches, or other hardware and/or software components.

As discussed below with respect toFIG.3B, the temperatures of subsystems301a-301nand subsystems303a-303bare measured and are used to determine leakage consumptions302a-302nand304a-304b. Leakage consumptions302a-302nand304a-304bare input to leakage consumption accumulator circuit305. Leakage consumption accumulator circuit305accumulates leakage consumptions302a-302nand304a-304bto generate total leakage consumption306. According to some aspects, leakage consumptions302a-302nand304a-304band/or total leakage consumption306are scaled leakage consumptions.

Total leakage consumption306is compared, using control circuit309, with one or more leakage thresholds307a-307mto determine a leakage region and one or more parameters308for peak power manager101. According to some aspects, control circuit309can include a comparator (e.g., a comparison circuit). In some examples, control circuit309can be control system233ofFIG.2or be part of control system233. Total leakage consumption306can be quantized into one or more regions using control circuit309and leakage thresholds307a-307m. Different regions can have different parameters for peak power manager101. Control circuit309can include an m-level comparator as discussed below with respect toFIG.3C, according to some aspects. Control circuit309can classify total leakage consumption306into different regions and can select a leakage region and one or more parameters308for peak power manager101. The selected leakage region can be used to determine parameters308of peak power manager101such as, but not limited to, threshold power212(e.g., the available budget) ofFIG.2. According to some aspects, leakage thresholds307a-307mfor different regions can be stored in a memory (e.g., the DVFM table) and can be a function of, for example, number of subsystems activated, voltage, frequency conditions, etc.

FIG.3Billustrates an exemplary leakage consumption determination for two subsystems, according to some aspects of the disclosure. For example,FIG.3Billustrates subsystem301athat can include scale parameters321aand piecewise linear scaling (PWL) circuit323a. In this example, PWL323a(e.g., a linear scaling circuit) can receive the measured temperature322aof subsystem301aand scale parameters321a. Using these inputs, PWL circuit323acan generate leakage consumption302a. According to some aspects, leakage consumption302ais a measure of the temperature of subsystem301athat can be used by peak power manager101. The aspects of this disclosure are not limited to PWL circuit323aand can use other methods to generate leakage consumption302afrom the measured temperature of subsystem301a. According to some aspects, leakage consumptions302a-302nof subsystems301a-301ncan be determined similar to leakage consumption302adiscussed above. Leakage consumptions302a-302nare relative values (e.g., relative to a maximum value). For example, leakage consumptions302a-302nare numbers between 0 and 1.

In another example,FIG.3Billustrates subsystem303athat can include a first set of scale parameters331a, a second set of scale parameters335a, and piecewise linear scaling (PWL) circuit333a. In this example, PWL circuit333a(e.g., a linear scaling circuit) can receive the measured temperature332aof subsystem301aand the first set of scale parameters331a. The output of PWL circuit333acan be multiplied (using multiplier circuit337a) by a second set of scale parameters335ato generate leakage consumption304a. According to some aspects, leakage consumption304ais a measure of the temperature of subsystem303athat can be used by peak power manager101. The aspects of this disclosure are not limited to PWL circuit333aand can use other methods to generate leakage consumption304afrom the measured temperature of subsystem303a. According to some aspects, leakage consumptions304bof subsystem303bcan be determined similar to leakage consumption304adiscussed above. Leakage consumptions304a-304bare relative values (e.g., relative to a maximum value). For example, leakage consumptions304a-304bare numbers between 0 and 1.

According to some aspects, leakage consumptions302a-302nand304a-304bcan be determined for each state (e.g., current voltage, frequency, etc.) of subsystems301a-301nand303a-303b, respectively.

FIG.3Cillustrates an exemplary comparison system340for selecting one or more parameters of peak power manager101, according to some aspects of this disclosure. Comparison system340(e.g., a comparison circuit) can be or include control circuit309ofFIG.3A, according to some examples. Comparison system340is discussed with respect to three leakage thresholds307a-307cand therefore, four regions for selecting one or more parameters of peak power manager101. However, the aspects of this disclosure are not limited to these example, and any number of thresholds and/or regions can be used.

As discussed above, leakage thresholds307a-307cfor different regions can be stored in a memory (e.g., the DVFM table) and can be a function of, for example, number of subsystems activated, voltage, frequency conditions, etc. Additionally, the memory (e.g., the DVFM table) can store parameters350a-350dfor each region for peak power manager101. Comparison system340can use leakage thresholds307a-307cto determine to which region total leakage consumption306belongs.

In one example, comparator309aof comparison system340can compare total leakage consumption306with leakage threshold307aand generate control signal342abased on the comparison. Control signal342acan control multiplexer351to select one of parameter(s)350aor parameters350b. Similarly, comparator309bof comparison system340can compare total leakage consumption306with leakage threshold307band generate control signal342bbased on the comparison. Also, comparator309cof comparison system340can compare total leakage consumption306with leakage threshold307cand generate control signal342cbased on the comparison. Control signal342ccan control multiplexer353to select one of parameter(s)350cor parameters350d.

Control signals342aor342bcan control multiplexer355to select one of the outputs of multiplexers351and353to output a leakage region and/or one or more parameters308for peak power manager101. One or more parameters308can be threshold power212(e.g., an available budget) ofFIG.2. Additionally, or alternatively, threshold power212can be determined based on one or more parameters308.

FIG.4illustrates an exemplary implementation of peak power manager400with preemptive mitigation circuit420, according to some aspects of the disclosure. Peak power manager400is similar to peak power manager101ofFIG.2, and similar circuits/elements are referenced with same numerals and are not discussed in more detail with respect toFIG.4. Peak power manager400can be used as peak power manager101ofFIG.1. One exemplary difference between peak power manager400and peak power manager101ofFIG.2is the addition of preemptive mitigation circuit420.

According to some aspects, threshold power212(e.g., the available budget) ofFIG.2can be a parameter that can be determined as discussed above with respect toFIGS.1and3A-3C. Additionally, or alternatively, threshold power412(e.g., the available budget) ofFIG.4can be dynamically changed based at least on, for example, a present estimate of a current and how the estimate of the current is changing in time (e.g., di/dt (derivative of current (I(t)) with respect to time (t))). The estimate of the current can be based on threshold power212(e.g., the available budget) ofFIG.2.

According to some aspects, preemptive mitigation circuit420can be configured to determine a value of a maximum change in the estimate of the current (e.g., di/dt) allowed in the next m cycles (e.g., the size of m-entry FIFO storage device/circuit401) and determine the present value of the estimate of the current (I(t)). In a non-limiting example, if the present value of the estimate of the current is at %20 and the maximum allowed change in the estimate of the current is %10 per cycle, then preemptive mitigation circuit420can determine that in the next n cycles, the value of the estimate of the current can only go up %50. Based on the determined value of maximum change in the estimate of the current (e.g., di/dt) allowed in the next m cycles and the present value of the estimate of the current, preemptive mitigation circuit420can set threshold power412(e.g., the available budget) ofFIG.4, according to some aspects.

In some examples, preemptive mitigation circuit420can include storage device401(e.g., an m-entry FIFO storage device) that receives accumulated power estimate210. Storage device401can store accumulated power estimates210over a plurality (e.g., m) cycles. Minimum circuit403can be configured to determine a minimum value of accumulated power estimates210in storage device401and to generate minimum accumulated power estimate406. Accumulator circuit405(e.g., an adder circuit) is configured to receive minimum accumulated power estimate406and add maximum allowed slew rate408. According to some aspects, maximum allowed slew rate408can be retrieved from a memory (e.g., the DVFM table). In a non-limiting example, when at cycle n, the estimate of the of current is % x and the maximum estimate of the current allowed at cycle n+1 is % y, then maximum allowed slew rate408(e.g., the maximum allowed change in the estimate of the current (e.g., di/dt)) is y−x.

Minimum circuit407receives the output of accumulator circuit405and maximum allowed current410to determine threshold power412(e.g., the available budget). Minimum circuit407selects the minimum of the output of accumulator circuit405and maximum allowed current410to determine threshold power412, according to some aspects. In some examples, maximum allowed current410can be based on threshold power212ofFIG.2and/or parameter(s)308ofFIGS.3A-3C. In a non-limiting example, if maximum change in the estimate of the current (e.g., di/dt) is %105 but maximum allowed current410is %100, then preemptive mitigation circuit420chooses the one that is the most constraining of the two.

Therefore, preemptive mitigation circuit420can reduce the maximum change in the estimate of the current (e.g., di/dt), according to some aspects of this disclosure.

According to some aspects, preemptive mitigation circuit420can be enabled using IVDM (in-die voltage monitor) signal404. For example, if system400determines that preemptive mitigation circuit420is to be enabled (e.g., there is a risk of an event such as, but not limited to, a voltage droop event), IVDM signal404can be used to enable operations of preemptive mitigation circuit420. For example, if the system is at risk of reaching maximum change in the current (e.g., di/dt), IVDM signal404can enable preemptive mitigation circuit420to monitor di/dt and dynamically change the available budget. In some examples, IVDM signal404can reset storage device401(e.g., the m-entry FIFO). In other words, IVDM signal404is used to enable preemptive mitigation circuit420when there is a risk for, for example, subsystems103a-103n.

According to some aspects, minimum circuits403and405can be part of a control circuit (e.g., control circuit233). Additionally, or alternatively, minimum circuits403and405can be part of a second control circuit (e.g., different from control circuit233).

FIG.5illustrates an example method500implementing peak power management, according to some aspects of the disclosure. As a convenience and not a limitation,FIG.5may be described with regard to elements ofFIGS.1-4. Method500may represent the operation of an electronic device (e.g., peak power manager101ofFIGS.1and2and/or peak power manager400ofFIG.4) implementing peak power management. Method500may also be performed by computer system600ofFIG.6. But method500is not limited to the specific aspects depicted in those figures and other systems may be used to perform the method as will be understood by those skilled in the art. It is to be appreciated that not all operations may be needed, and the operations may not be performed in the same order as shown inFIG.5.

At502, one or more power estimates are received. For example, a first power estimate accumulator circuit (e.g., power estimate accumulator circuit203of peak power manager101ofFIG.2) receives one or more power estimates that are associated with one or more sub systems (e.g., sub systems103a-103n).

According to some examples, each power estimate can be generated based on a power indicator from a corresponding subsystem. For example, each one of one or more power indicators from subsystems103a-103ncan be multiplied by an associated weight (e.g., weights202a-202nofFIG.2) to generate the corresponding power estimate (e.g., power estimates222a-222n). The power indicator can include information regarding the power consumed by subsystem103. For example, as discussed above, the indicator can include, but is not limited to, the number of events such as, but not limited to, instructions (e.g., high power instructions) issued in each subsystem103. Other methods can also be used to generate the power estimates. Also, althoughFIG.2illustrates a number of power estimates, the aspects of this disclosure can include any number (e.g., one or more) powers estimates used by peak power manager101.

At504, a first accumulated power estimate is generated. For example, the first power estimate accumulator circuit (e.g., power estimate accumulator circuit203) can generate the first accumulated power estimate (e.g., accumulated power estimate204) by adding the one or more power estimates (e.g., power estimates222a-222n). In some examples, the first power estimate accumulator circuit is configured to generate the first accumulated power estimate from the one or more power estimates over one clock cycle.

At506, a plurality of first accumulated power estimates associated with a plurality of clock cycles are stored. For example, a storage device (e.g., storage device205ofFIG.2) can store the plurality of first accumulated power estimates associated with the plurality of clock cycles corresponding to a moving time interval window. In some examples, the storage device can include a FIFO storage device. By using the storage device, the peak power manager of this disclosure can store a plurality of first accumulated power estimates over the plurality of clock cycles. The storage device can act as a moving window for storing the plurality of first accumulated power estimates over the plurality of clock cycles.

At508, the plurality of first accumulated power estimates are accumulated to generate a second accumulated power estimate. For example, a second power estimate accumulator circuit (e.g., power estimate accumulator circuit231that can include one or more of adder circuits207and209and memory211) can be configured to accumulate the plurality of first accumulated power estimates (e.g., power estimates in storage device205) to generate a second accumulated power estimate (e.g., accumulated power estimate210). In this examples, the second accumulated power estimate (e.g., accumulated power estimate210) is a power estimate accumulated over one or more subsystems and over a plurality of clock cycles. In other words, the second power estimate accumulator circuit can be configured to accumulate the plurality of first accumulated power estimates over the plurality of clock cycles corresponding to the moving time interval window.

At510, the second accumulated power estimate is compared with a threshold power. For example, a control circuit (e.g., control circuit233including comparator213) can compare the second accumulated power estimate (e.g., accumulated power estimate210) with the threshold power (e.g., threshold power212).

According to some aspects, the threshold power (e.g., threshold power212) can be stored in a memory (e.g., the DVFM table) and can be based on a performance state of the one or more subsystems. The control circuit (e.g., comparator213) can retrieve the threshold power from the memory.

Additionally, or alternatively, one or more parameters of the peak power manager of this disclosure (e.g., the threshold power) can be determined based on leakage consumption of the one or more subsystems. In this example, method500can further include determining the one or more parameters of the peak power manager of this disclosure (e.g., the threshold power). For example, method500can further include receiving one or more leakage consumptions from the one or more subsystems and generate a total leakage consumption based on the one or more leakage consumptions. In this example, a leakage consumption accumulator circuit (e.g., leakage consumption accumulator circuit305ofFIG.3A) can be configured to receive one or more leakage consumptions (e.g., leakage consumptions302a-302nand/or304a-304b) from the one or more subsystems. The leakage consumption accumulator circuit can further generate a total leakage consumption (e.g., total leakage consumption306) based on the received one or more leakage consumptions. According to some aspects, each of the one or more leakage consumptions is determined based on a temperature of a corresponding one of the one or more subsystems.

In this example, method500can further include comparing the total leakage consumption with one or more leakage thresholds and determining one or more parameters for the peak power manager based on the comparison. For example, as discussed in detail above with respect toFIGS.3A-3C, control circuit233ofFIG.2and/or a second control circuit (e.g., control circuit309including a comparator ofFIGS.3A and3C) can be configured to compare the total leakage consumption (e.g., total leakage consumption306) with one or more leakage thresholds (e.g., leakage thresholds307a-307m). Based on the comparison, control circuit233ofFIG.2and/or the second control circuit can be configured to determine one or more parameters for the peak power manager based on the comparison. The one or more parameters for the peak power manager can include the threshold power.

Additionally, or alternatively, method500can include dynamically generating the threshold power. For example, the peak power manager of this disclosure can include a preemptive mitigation circuit (e.g., preemptive mitigation circuit420ofFIG.4) configured to receive the second accumulated power estimate (e.g., accumulated power estimate210) accumulated over the plurality of clock cycles and dynamically generate the threshold power.

In this example, method500can include receiving the second accumulated power estimate (e.g., accumulated power estimate210) and storing the second accumulated power estimate in a storage device (e.g., storage device401ofFIG.4). Method500can further include determining, using a minimum circuit (e.g., minimum circuit403), a minimum value of a plurality of second accumulated power estimates stored in the storage device. Method500can further include adding (using an accumulator circuit such as accumulator circuit405ofFIG.4) the determined/generated minimum accumulated power estimate (e.g., minimum accumulated power estimate406ofFIG.4) with a maximum allowed slew rate (e.g., maximum allowed slew rate408ofFIG.4) to generate an output. According to some aspects, maximum allowed slew rate can be retrieved from a memory (e.g., the DVFM table).

Method500can further include using the output of an accumulator circuit (e.g., accumulator circuit405such as an adder circuit) and a maximum allowed current (e.g., maximum allowed current410ofFIG.4) to determine the threshold power412. For example, a minimum circuit (e.g., minimum circuit407ofFIG.4) selects the minimum of the output of the adder circuit and the maximum allowed current to determine the threshold power, according to some aspects.

Returning toFIG.5and after the comparison operation510, if the second accumulated power estimate satisfies a condition associated with the threshold power, method500moves to512where a control signal is generated to control one or more events at the one or more subsystems. In some examples, the condition can include the second accumulated power estimate (e.g., accumulated power estimate210) being greater than the threshold power (e.g., threshold power212). In this example, if the second accumulated power estimate is greater than the threshold power, the control signal (e.g., control signal214) is generated for limiting the number of events such as, but not limited to, instructions (e.g., high power instructions) being issued in subsystems103. However, if the second accumulated power estimate (e.g., accumulated power estimate210) satisfies a second condition (e.g., accumulated power estimate210is less than or equal to threshold power212), the control signal (e.g., control signal214) is not generated and/or is not sent to the subsystems.

According to some aspects, before determining the control signal and/or before sending the control signal to the one or more subsystems, method500can determine whether the one or more subsystems are at the risk of exceeding a peak power. If the one or more subsystems are not at risk, the control signal is not determined and/or is not sent to the one or more subsystem. In this example, method500can include receiving one or more weights and a threshold and comparing the one or more weights with the threshold. For example, a control circuit (e.g., control circuit233including, for example, comparator217ofFIG.2) can be configured to receive one or more weights (e.g., weights218) and a threshold (e.g., threshold216). The control circuit can be configured to compare the one or more weights with the threshold.

In response to the one or more weights satisfying a first condition associated with the threshold, method500can include passing the control signal to the one or more subsystems to control the one or more events (e.g., instructions, etc.) at the one or more subsystems. In some examples, the first condition can include the one or more weights being less than or equal to the threshold. However, in response to the one or more weights satisfying a second condition associated with the second threshold, method500can include blocking the control signal to the one or more subsystems. In some examples, the second condition can include the one or more weights being greater than the threshold216.

Various aspects can be implemented, for example, using one or more computer systems, such as computer system600shown inFIG.6. Computer system600can be capable of performing the functions described herein such as system100ofFIG.1, system200ofFIG.2, system300ofFIG.3A, and/or system340ofFIG.3C. Computer system600can be configured to perform method500ofFIG.5, according to some aspects. Computer system600includes one or more processors (also called central processing units, or CPUs), such as a processor604. Processor604is connected to a communication infrastructure606(e.g., a bus.) Computer system600also includes user input/output device(s)603, such as monitors, keyboards, pointing devices, etc., that communicate with communication infrastructure606through user input/output interface(s)602. Computer system600also includes a main or primary memory608, such as random access memory (RAM). Main memory608may include one or more levels of cache. Main memory608has stored therein control logic (e.g., computer software) and/or data.

Computer system600may also include one or more secondary storage devices or memory610. Secondary memory610may include, for example, a hard disk drive612and/or a removable storage device or drive614. Removable storage drive614may be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup device, and/or any other storage device/drive.

Removable storage drive614may interact with a removable storage unit618. Removable storage unit618includes a computer usable or readable storage device having stored thereon computer software (control logic) and/or data. Removable storage unit618may be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and/ any other computer data storage device. Removable storage drive614reads from and/or writes to removable storage unit618in a well-known manner.

According to some aspects, secondary memory610may include other means, instrumentalities or other approaches for allowing computer programs and/or other instructions and/or data to be accessed by computer system600. Such means, instrumentalities or other approaches may include, for example, a removable storage unit622and an interface620. Examples of the removable storage unit622and the interface620may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface.

Computer system600may further include a communication or network interface624. Communication interface624enables computer system600to communicate and interact with any combination of remote devices, remote networks, remote entities, etc. (individually and collectively referenced by reference number628). For example, communication interface624may allow computer system600to communicate with remote devices628over communications path626, which may be wired and/or wireless, and which may include any combination of LANs, WANs, the Internet, etc. Control logic and/or data may be transmitted to and from computer system600via communication path626.

The operations in the preceding aspects can be implemented in a wide variety of configurations and architectures. Therefore, some or all of the operations in the preceding aspects may be performed in hardware, in software or both. In some aspects, a tangible, non-transitory apparatus or article of manufacture includes a tangible, non-transitory computer useable or readable medium having control logic (software) stored thereon is also referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system600, main memory608, secondary memory610and removable storage units618and622, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system600), causes such data processing devices to operate as described herein.

While the disclosure has been described herein with reference to exemplary aspects for exemplary fields and applications, it should be understood that the disclosure is not limited thereto. Other aspects and modifications thereto are possible, and are within the scope and spirit of the disclosure. For example, and without limiting the generality of this paragraph, aspects are not limited to the software, hardware, firmware, and/or entities illustrated in the figures and/or described herein. Further, aspects (whether or not explicitly described herein) have significant utility to fields and applications beyond the examples described herein.

Aspects have been described herein with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined as long as the specified functions and relationships (or equivalents thereof) are appropriately performed. In addition, alternative aspects may perform functional blocks, steps, operations, methods, etc. using orderings different from those described herein.

References herein to “one aspect,” “an aspect,” “some aspects,” “an example,” “some examples” or similar phrases, indicate that the aspect described may include a particular feature, structure, or characteristic, but every aspect may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same aspect. Further, when a particular feature, structure, or characteristic is described in connection with an aspect, it would be within the knowledge of persons skilled in the relevant art(s) to incorporate such feature, structure, or characteristic into other aspects whether or not explicitly mentioned or described herein.

The breadth and scope of the disclosure should not be limited by any of the above-described exemplary aspects, but should be defined only in accordance with the following claims and their equivalents.

As described above, aspects of the present technology may include the gathering and use of data available from various sources, e.g., to improve or enhance functionality. The present disclosure contemplates that in some instances, this gathered data may include personal information data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data can include demographic data, location-based data, telephone numbers, email addresses, Twitter ID's, home addresses, data or records relating to a user's health or level of fitness (e.g., vital signs measurements, medication information, exercise information), date of birth, or any other identifying or personal information. The present disclosure recognizes that the use of such personal information data, in the present technology, may be used to the benefit of users.