This application is directed, in general, to a integrated circuits (ICs) and, more specifically, to ICs employing adaptive voltage scaling (AVS).
Conserving resources, including energy, has become a pre-eminent objective in today's world. Manufacturers of ICs are sensitive to the need to improve the energy efficiency of their products. National Semiconductor Corporation developed adaptive voltage scaling (AVS) as part of that overall strategy. The idea behind adaptive voltage scaling is that an IC, such as an IC, could be powered based on its actual electrical characteristics and current operating temperature, both of which in part determine signal propagation speed.
AVS employs a closed control loop in which an AVS controller dynamically adjusts the supply voltage (V) provided by a voltage regulator to the IC based on the output of one or more critical path monitors (CPMs) reflecting the process condition of the IC substrate (P) and the temperature (T) at which the IC is operating. V is chosen based on P and T such that, barring an extreme condition, the IC's specified performance is guaranteed.
In carrying out AVS, it is important to know at any given instant in time of the amount of “slack” that is available in critical paths in the IC at a given clock frequency. A positive slack indicates that the supply voltage may be reduced without compromising performance, whereas a negative slack indicates that the functionality of one or more critical paths is already compromised and that the supply voltage should be increased to regain proper functionality. A slack of zero is optimal and therefore the goal of the AVS controller.
One aspect of the invention provides a CPM. In one embodiment, the CPM includes: (1) an edge detector configured to produce a thermometer output over a plurality of clock cycles and (2) a min_max recorder, coupled to the edge detector and configured to record minimum and maximum values of the thermometer output during a polling interval.
Another aspect provides a method of setting supply voltage based on output of a CPM. In one embodiment, the method includes: (1) monitoring the output of an edge detector of the CPM over a plurality of clock cycles, (2) recording a minimum value of a thermometer output of the edge detector over a polling interval, (3) recording a maximum value of a thermometer output of the edge detector over the polling interval, (4) calculating a weighted average of the minimum and maximum values and (5) setting a supply voltage to an integrated circuit based on the weighted average.
Yet another aspect provides an IC. In one embodiment, the IC includes: (1) an adaptive voltage scaling controller and (2) at least one CPM coupled to the adaptive voltage scaling controller, the at least one CPM. In one embodiment, the CPM has: (1) an edge detector configured to produce a thermometer output over a plurality of clock cycles and (2) a min_max recorder, coupled to the edge detector and configured to record minimum and maximum values of the thermometer output during a polling interval.
Reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
As described above, the AVS controller dynamically adjusts the supply voltage provided by a voltage regulator to the IC based on the output of one or more CPMs. The voltage supplied by the voltage regulator is constant at a given regulator setting (called a voltage ID, or VID). Nonetheless, as those skilled in the pertinent art are aware, the actual voltage at various points within the chip are likely to vary considerably due to voltage drops associated with static and dynamic currents in the IC (the latter depending on switching activity). Therefore the CPM should be capable of measuring slack dynamically, thus taking into account the voltage fluctuations on the IC.
Most modern CPMs fall into two general categories: ring-oscillator-based CPMs and delay-path-based CPMs. Ring-oscillator-based CPMs have a time-base larger than the IC's system clock frequency (which drives the ring-oscillator) and therefore do not have an adequate cycle-by-cycle sensitivity. For this reason, ring-oscillator-based CPMs are inappropriate for the embodiments disclosed herein and will not be further described.
In contrast, delay-path-based CPMs do have a suitable cycle-by-cycle sensitivity, allowing such CPMs to track sharp fluctuations due to instantaneous voltage drops (IVDs) on the IC. Delay-path-based CPMs use the IC's system clock as a reference for launching data into one or more pre-designed, independent data paths. The delay in the data path(s) is monitored with the expectation that, by design, one or more of the paths will closely track the delay behavior along an actual critical path in the IC. This allows the AVS controller to correlate the output of the CPM directly to the slack available in the actual critical path.
The AVS controller polls the various CPMs to which it is coupled in time intervals that are at least as long as the frequency at which the voltage regulator is capable of changing the supply voltage it provides to the IC. The specifications of voltage controllers that are commercially available today constrain the polling time interval to be at least 1 microsecond. This time interval is much larger compared to the typical system clock cycle times of modern ICs, which are on the order of ˜0.5 ns to 10 ns. For this reason, the AVS controller should choose a VID that most fairly represents the slack information the CPMs provide over the polling time interval.
Introduced herein are various embodiments of a CPM architecture and a method of performing AVS that provide better data to the AVS controller to allow it to make better VID decisions. Before describing the various embodiments in detail, an example of an IC employing AVS will now be given.
To address this issue, the CPM architecture and method of performing AVS provide more representative data regarding the CPM's output during a given time interval. The AVS controller therefore has more or better information from which to make its VID decisions. In various embodiments to be illustrated and described, the novel architecture and method include a CPM that provides multiple types of data to the AVS controller. In certain embodiments, the CPM provides either or both of minimum and maximum output values achieved during the interval. In alternative embodiments, the CPM itself combines the data to yield resulting data that is more representative of its output over the interval. In one embodiment to be illustrated and described, weighting factors are employed to generate a weighted average of minimum and maximum output values.
In various embodiments to be illustrated and described, the CPM is provided with a circuit, which may be composed of sequential logic, that enables the CPM simultaneously to record (a) the minimum reading over a given polling interval, (b) the maximum reading over a given polling interval and (c) a calculated weighted reading that considers both the minimum and maximum readings.
Turning now to
An edge detector 330 is configured to detect how far the pulse edge introduced into the delay path has advanced through the selected delay path (e.g., path0, path1, path2, path3, path4, path5) during one clock cycle. The thermometer output of the edge detector 330 takes the form of a series of ones followed by a series of zeros. The boundary betweens ones and zeros demarcates how far the edge has advanced through the selected delay path and through the edge detector 330. For this reason, the output of the edge detector 330 is colloquially called a “thermometer output.” In one embodiment, the edge detector 330 has a 128-bit thermometer output.
A min_max recorder 340 is configured to receive the thermometer output of the edge detector 330 and, in a manner to be described below, employ the thermometer output to generate additional data that can then be employed to improve AVS accuracy.
An encoder 350 is configured then to receive and encode the output of the min_max recorder 340 to yield an encoded CPM output reading suitable for transmission to the AVS controller (e.g., the AVS controller 150 of
The general operation of the embodiment of the min_max recorder 340 of
Various embodiments of the min_max recorder 340 will now be described.
Turning to
The min recorder subblock initially assumes the value of the thermometer output of the edge detector during the first cycle, retains its value during the second cycle, assumes the value of the thermometer output of the edge detector during the third and fourth cycles and retains its value during the fifth cycle. This results in a min recorder value of four, as expected. The max recorder subblock initially assumes the value of the thermometer output of the edge detector during the first cycle, assumes the value of the thermometer output of the edge detector during the second cycle, retains its value during the third and fourth cycles and assumes the value of the thermometer output of the edge detector during the fifth cycle. This results in a max recorder value of 13, as expected.
The min recorder cell includes an AND gate 610, an OR gate 620, a flip-flop 630 and an inverter 640 coupled as shown. When the flip-flop 630 is reset, the min recorder cell assumes the value of ‘1’ and remains ‘1’ as long as its input is a ‘1.’ As soon as the input becomes a ‘0,’ its output remains ‘0’ and does not change until the flip-flop 630 is once again reset. This results in the minimum reading being recorded over an interval of time as the example of
The max recorder cell includes an AND gate 710, an OR gate 720 and a flip-flop 730 coupled as shown. When the flip-flop 730 is reset, the max recorder cell assumes the value of ‘0’ and remains ‘0’ as long as its input is a ‘0.’ As soon as the input becomes a ‘1,’ its output remains ‘1’ and does not change until the flip-flop 730 is once again reset. This results in the maximum reading being recorded over an interval of time as the example of
In one embodiment, the weighting factors are predetermined. In a specific embodiment, a programmable fuse (not shown) is employed to set the weighting factors. In an alternative embodiment, the weighting factors are dynamically adjusted to achieve a desired degree of pessimism or optimism, perhaps by way of a feedback loop.
The most pessimistic case is to use a weighting factor of one for the min output value and a weighting factor of zero for the max output value at all times. The most pessimistic case is to use a weighting factor of zero for the min output value and a weighting factor of one for the max output value at all times. A moderate case is to use a weighting factor of 0.5 for both the min and max output values. Those skilled in the art will understand that other cases may be appropriate for particular ICs in various applications and conditions.
It is possible that operational conditions may lead to a min output value of zero, which is typically an invalid number for purposes of determining voltage value. Accordingly, one embodiment of the CPM employs a setting, ‘cfglength,’ illustrated in
Those skilled in the art to which this application relates will appreciate that other and further additions, deletions, substitutions and modifications may be made to the described embodiments.