Modern integrated circuits often comprise multiple processor cores and other components that share a common power supply. In typical operations, the power consumed by the processor cores and other components varies over time according to the work being done. In particular, a rapid increase in the activity of a processor core can cause a similarly rapid increase in power demand to that core. The power supply, given its physical limitations, may be unable to provide this rapid power increase while also maintaining power at a constant voltage to all serviced components. As a result, the power supply may exhibit a transient drop in voltage, often referred to as a voltage droop. To address voltage droop, typical integrated circuits include circuitry to carry out mitigation measures, such as lowering the clock frequency of the integrated circuit, in response to detecting a voltage droop.
Example embodiments include a circuit for detecting a voltage droop. A first signal delay line may be configured to output a first delayed signal and may be comprised of delay elements having a first threshold voltage. A second delay line may be configured to output a second delayed signal and may be comprised of delay elements having a second threshold voltage that is higher than the first threshold voltage. A phase detector may be configured to compare the first and second delayed signals and output a comparison signal indicating which of the first and second signal delay lines exhibits a shorter delay. A reset circuit may be configured to reset the first and second signal delay lines in response to the comparison signal, and a clock controller may be configured to output a command to adjust a clock frequency based on the comparison signal.
The first delay line may output the first delayed signal with a first delay that varies based on common operational voltage. The second delay line may output the second delayed signal with a second delay that varies based on the common operational voltage, the first and second delays being distinct from one another. The first and second delay lines may each exhibit a delay that varies distinctly from one another in response to a voltage drop of the common operational voltage. The delay elements of the first and second delay lines may be built from or otherwise include devices (e.g., MOSFETs) having the first and second threshold voltages, respectively.
The first and second delay lines may each have a respective delay that is adjustable based on a calibration process. A calibration circuit may be configured to 1) apply a target voltage code to a lookup table cross-referencing reference voltages and reference delay control values, and 2) cause the delay of the first and second delay lines to be adjusted based on a match between the target voltage and the lookup table. Once the voltage of the external power supply is set, the delay of the delay lines may be adjusted to be equal (e.g., one is set to a fixed delay, and the delay of the other may be modified until the first delay line becomes shorter and the detector output is toggled. The calibration circuit may then store the delay configuration together with a voltage digital code in a look up table, wherein the calibration voltage is informed by the code of the current operating voltage. This process may be repeated for several voltages. Then, during normal operation of the detector, when the power supply is changing voltage, the operating voltage code may be sent to the look up table. The lookup table may output the calibration values for the delay lines that are stored for the specific voltage.
The first and second delay lines may be configured to exhibit an equal delay at a target operational voltage. A clock controller may be configured to adjust the clock frequency based on the command. The circuit may also be implemented in a system-on-chip (SOC) comprising a plurality of devices including the circuit, the plurality of devices sharing a common power supply. The SOC may be configured to adjust an operational clock frequency of the plurality of devices based on the command.
Further embodiments include a method of detecting a voltage droop. A first delayed signal may be generated via elements having a first threshold voltage, and a second delayed signal may be generated via elements having a second threshold voltage that is higher than the first threshold voltage. The first and second delayed signals may be compared, and a comparison signal may be output indicating which of the first and second signal delay lines exhibits a shorter delay. The first and second signal delay lines may then be reset in response to the comparison signal, and a command to adjust a clock frequency may be generated based on the comparison signal.
The first delayed signal may exhibit a first delay that varies based on common operational voltage. The second delayed signal may exhibit a second delay that varies based on the common operational voltage, the first and second delays being distinct from one another. The first and second delay signals may each exhibit a delay that varies distinctly from one another in response to a voltage drop of the common operational voltage. Further, the delays of the first and second delay signals may change differently when the voltage changes, such as when the SOC moves to a different operating voltage. For this reason, the detector may be calibrated at multiple voltages, and when the voltage changes, the detector may respond by applying the calibration configuration that corresponds to the new operating voltage.
The first and second delay signals may each exhibit a respective delay that is adjustable based on a calibration process. In an example adjustment process, a target voltage code may be applied to a lookup table cross-referencing reference voltages and reference delay control values; and the delay of the first and second delay signals may be adjusted based on a match between the target voltage and the lookup table. The first and second delay signals may exhibit an equal delay at a threshold operational voltage.
The clock frequency may be adjusted based on the command. The method may also be implemented in a system-on-chip (SOC) comprising a plurality of devices sharing a common power supply. An operational clock frequency of the plurality of devices may be adjusted based on the command.
The foregoing will be apparent from the following more particular description of example embodiments, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments.
A description of example embodiments follows.
Typical droop mitigation techniques involve lowering a clock frequency of the circuit, which may be global or specific to a subset of components. Droop mitigation can improve the power performance of the circuit by reducing the required frequency margin of the affected components, thereby allowing the components to run faster and with higher performance. Operating at the same frequency, faster components can use lower voltage, thereby consuming less power.
The droop detector 200 includes a voltage regulator 205 to output an analog supply voltage Vanalog, which is received by a first resistor voltage divider 210a to generate a corresponding reference voltage Vreference. The analog supply voltage Vanalog may be a stable voltage that is largely unaffected by the changes in voltage of a system power supply. A second resistor voltage divider 210b receives the power supply voltage VDD and outputs a corresponding divided supply voltage VDD_DIV. The resistor voltage dividers 210a-b may be are set to ensure that Vreference and VDD_DIV are equal at the operating voltage of VDD. During a droop event, VDD_DIV may become lower and the comparator output DroopDet_Out may toggle. An analog comparator 215 compares the outputs of each divider 120a-b and outputs a droop detection signal DroopDet_Out indicating whether VDD is below the target voltage.
A droop detector can be employed in multiple scenarios. In one scenario, droop detection can enable an increased maximum bin frequency, wherein circuit components consistently operate at a maximum VDD. Here, faster components can operate at a higher frequency, resulting in higher performance. In another scenario, droop detection can enable power savings, wherein all components operate at the same frequency, and faster units can operate at a lower voltage, thereby saving power.
In the example shown, the delay of the lower VT line increases by ˜10% while the higher VT line delay increases by ˜60% for the same voltage decrease. This behavior allows the detection of a specific voltage threshold. Specifically, provided that the delay lines have equal delay at a specific voltage, then 1) at a higher voltage, the higher VT line delay is shorter, and 2) at a lower voltage, the lower VT line delay is shorter. This principle can be applied to detection of voltage droop as described below.
The delays of the signal delay lines 410a-b may be programmable, and can be programmed (e.g., via a calibration process, described below) to have equal delay at a target detection voltage. When an operational voltage (VDD) decreases below this target voltage, the delay of the higher VT delay line (410b) increases more than the delay of the lower VT delay line (410a). Thus, the target voltage may be set as a threshold voltage for identifying a voltage droop, wherein an operating voltage of less than the threshold is to be detected as a voltage droop. Example delay control inputs to each delay line 410a-b are shown in
With reference to
Following the calibration process, the detector 400 may enter the functional mode to detect voltage droops exhibited by VDD. For example, the FUNC_MODE input may be set to 1 to toggle the functional mode. To set a specific threshold voltage, a Voltage_Code[V:0], which may indicate either the operational VDD voltage or the corresponding threshold voltage, may be input to the look-up table 560. Accordingly, the look-up table may output the corresponding FUNC_LVT_DEL[N:0] and FUNC_HVT_DEL[M:0] values to the detector 400, which are received as the delay control inputs to each delay line 410a-b (LVT_DEL[N:0] and HVT_DEL[M:0]). In one embodiment, the look-up table 560 may store values for limited number of threshold voltages (e.g., 2 or 3), and the look-up table 560 may include circuitry for determining interpolated values for FUNC_LVT_DEL[N:0] and FUNC_HVT_DEL[M:0] based on the stored values and Voltage_Code[V:0]. Once the delay control inputs are established for the detector 400, the detector 400 may proceed to detect voltage droop as described below with reference to
While example embodiments have been particularly shown and described, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the embodiments encompassed by the appended claims.
This application claims the benefit of U.S. Provisional Application No. 63/328,548, filed on Apr. 7, 2022. The entire teachings of the above application are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
6285230 | Na | Sep 2001 | B1 |
6600345 | Boutaud | Jul 2003 | B1 |
6686785 | Liu et al. | Feb 2004 | B2 |
6882238 | Kurd | Apr 2005 | B2 |
7145831 | Goller et al. | Dec 2006 | B2 |
7551909 | Moon et al. | Jun 2009 | B1 |
7764095 | Werner et al. | Jul 2010 | B2 |
7952404 | Petrie | May 2011 | B2 |
7971088 | Jung et al. | Jun 2011 | B2 |
9425779 | Jung | Aug 2016 | B2 |
9654121 | Chu | May 2017 | B1 |
10162373 | Chong et al. | Dec 2018 | B1 |
10530370 | Mohan et al. | Jan 2020 | B1 |
10784871 | Xanthopoulos | Sep 2020 | B1 |
10784874 | Bang et al. | Sep 2020 | B1 |
11527956 | Bertolini | Dec 2022 | B2 |
20020079937 | Xanthopoulos | Jun 2002 | A1 |
20020097592 | Komurasaki et al. | Jul 2002 | A1 |
20040017234 | Tam et al. | Jan 2004 | A1 |
20070170967 | Bae et al. | Jul 2007 | A1 |
20070194815 | Nelson | Aug 2007 | A1 |
20120068748 | Stojanovic et al. | Mar 2012 | A1 |
20130238309 | Ting et al. | Sep 2013 | A1 |
20140195081 | Kwak et al. | Jul 2014 | A1 |
20140327478 | Horng et al. | Nov 2014 | A1 |
20140347107 | Kim | Nov 2014 | A1 |
20150162921 | Chen et al. | Jun 2015 | A1 |
20150213873 | Joo et al. | Jul 2015 | A1 |
20150277393 | Liu et al. | Oct 2015 | A1 |
20150326231 | Thinakaran | Nov 2015 | A1 |
20160013796 | Choi | Jan 2016 | A1 |
20160077572 | Chang | Mar 2016 | A1 |
20160351269 | Okuno et al. | Dec 2016 | A1 |
20180351770 | Chiu et al. | Dec 2018 | A1 |
20190007055 | Nelson | Jan 2019 | A1 |
20200044657 | Pi et al. | Feb 2020 | A1 |
20200076439 | Weeks et al. | Mar 2020 | A1 |
20200076440 | Ng et al. | Mar 2020 | A1 |
20200083891 | Huh et al. | Mar 2020 | A1 |
Entry |
---|
Senger, et al., “Low-Latency, HDL-Synthesizable Dynamic Clock Frequency Controller with Self-Referenced Hybrid Clocking,” IEEE, Iscas 2006. |
Sidiropoulos, et al., “A Semidigital Dual Delay-Locked Loop,” IEEE Journal of Solid-Slate Circuits, vol. 32, No. 11, Nov. 1997. |
Zoni, et al., “A DVFS Cycle Accurate Simulation Framework with Asynchronous NoC Design for Power-Performance Optimizations,” J. Sign. Process Syst., published online Mar. 24, 2015. |
Number | Date | Country | |
---|---|---|---|
63328548 | Apr 2022 | US |