With many integrated circuit (IC) chips such as microprocessor chips, a minimum operating supply (e.g., VCCmin) can be a limiter in the drive for lower powered operation. Pushing the minimum operational supply lower can result in a significant power reduction. In many chips, lowering the minimum supply parameter can also increase the probability of encountering an uncorrectable error, so a balance is normally sought. The minimum supply parameter for many chips often will steadily increase over time. Thus, a large guardband (i.e., tolerance for degradation over time) on the minimum supply parameter may be used. Unfortunately, the use of such a guardband can force all parts (e.g., in a lot) to consume more power than necessary.
Embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements.
In some embodiments, error based supply regulation may be used to regulate the supply level (e.g., voltage, VCC, current, power) for a circuit or group of circuits in a chip. For example, a supply voltage for a central processing unit (CPU) may be controlled based on monitored error information from cache memory associated with the CPU. The cache may be a good candidate for error monitoring since it is typically the first circuit to fail as the VCC is reduced. In addition, with many commonly-used CPU devices, a cache may already have error information readily available for monitoring.
Cache architectures may have error detection as well as error correction circuitry. (Note that the term cache generally refers to a random access memory (RAM) structure used in a processor chip. It could comprise dynamic or static RAM implemented with any suitable cell structure such as so-called 1T, 2T, 4T, or 6T cells (to mention just a few.) Single bit, dual bit, and other error correction schemes are generally known. With a single bit scheme, one erroneous bit per line (BPL) is correctable and two erroneous BPL are detectable. Likewise, in a dual bit scheme, two BPL are correctable and 3 BPL are detectable. Cache systems employing such schemes can generally provide error information, such as the number of corrected bits, actual corrected bit-locations (cells), and/or the number of detected bit errors.
In cache memory systems, single bits per cache line typically begin failing long before multiple bits per cache line. In fact, the errors are typically largely random. Thus, for example, if the supply level is lowered until one in a thousand cache lines have a single bit error, it is reasonably likely that around one in a million lines would have two bad bits (or cells). Since single bit errors (per cache line) are typically correctable (e.g., in systems with single bit correction or higher), the voltage can safely be lowered below the point where single bits per line begin to fail. In fact, the probability of encountering an uncorrectable multi-bit error can be made arbitrarily small by holding the voltage just high enough to limit the total number of single bit corrections residing in the cache to some predetermined limit.
Either static or dynamic supplies may be controlled. (A static supply is a supply not otherwise varied during operation, while a dynamic supply is a supply that may be changed during operation, e.g., depending on operational mode such as to enhance operational efficiency.) With either case, the supply may be dynamically adjusted (in addition to the supply already being dynamically adjusted for dynamic supplies) in response to error information, e.g., to enhance operational efficiency. It could also be used to change a minimum allowed supply level (commonly referred to as a “guardband”) in response to changes in errors over time in order to have a lower guardband—at least at the beginning of a chip's life cycle.
With reference to
With reference to
Next, at decision step 204, it determines if the error rate (in the error signal from cache 111) is less than an excessive amount. For example, in a single-bit error correction scheme, an excessive rate might be a rate greater than one out of every thousand bits. (Since a single bit per line could be corrected, the likelihood of having more than one bit per line fail with this scheme would be on the order of one out of one million, an acceptable risk in some systems.) If the monitored error rate is equal or greater than the excessive amount, then at 206, the supply voltage would be incremented, e.g., by a predefined amount, and the routine would loop back to decision step 204.
On the other hand, if at step 204, it was determined that the error rate was not excessive, then it proceeds to decision step 208 and determines whether the error rate is greater than an insufficient rate. (This decision step is optional. It allows for the supply voltage level to be dropped even further for more efficient power consumption if the error rate is sufficiently small, i.e., it is insufficiently high for efficient operation.) At 212, if the error rate was in fact less than the insufficient rate, then the supply voltage level may be decremented. From here, the routine loops back to decision step 204 and proceeds as discussed. It can thus be seen that decision steps 204 and 208 define a range of error rate (i.e., insufficient rate<error rate<excessive rate) for operation where the supply level is neither incremented nor decremented. At step 208, if the error rate was greater than the insufficient rate value, then the routine would proceed to 210, and the supply voltage level would be maintained. From here, the routine loops back to decision step 204 and proceeds as described.
Other routines and/or error parameters (besides rate for example) could be implemented and monitored to control the supply level. Error rate is an efficient error signal parameter because in many systems, it may already be available or at least be generated with relatively little effort. Error rate monitoring works especially well in cache systems where the corrected bits are actually corrected in the memory array cell (as well as in the data provided out of the memory array). Otherwise, for example, if the same bit is being accessed, a high error rate may be perceived but not necessarily be the result of an insufficient supply level but instead the result of a repeatedly accessed defective cell. In many systems, this may be tolerable, but in others, different approaches may be used. A different approach is described below with respect to the embodiments of
The supply regulator circuit 305 generally comprises an error processing circuit 307, a CPU supply regulator 309, a cache 311, and an error log 313. The CPU supply regulator 309 is coupled between the error processing circuit 307 and cache 311 to provide one or more regulated supply voltages (VCC), with at least one used to supply the cache 311. The error log 313 is coupled to the cache 311 to receive from it error information from a cache error signal and to the error processing circuit 307 to provide it with error information used to control the supply voltage. The CPU supply regulator 309 generates the supply voltage from a power signal (e.g., externally supplied power) and controls the voltage supplied to the cache based on the error information provided to it from the error log 313.
The error log may comprise any suitable circuit (or circuit combination) to receive cache cell error information (e.g., location of corrected cells) and track the number of unique cells that have been corrected for a given session. For example, it could comprise an application specific circuit (e.g., a finite state machine) or it could be implemented with circuitry (a micro-controller) already included in a chip.
With reference to
With reference to
While the routine 500 is running, error log 313 tracks and counts the number of unique bit-error locations. Thus, the time for waiting at 510 can be set to provide for an error logging that accurately indicates cache performance as it is affected by the supply voltage level. For example, this amount (in cooperation with the excessive level set for determination step 504) could be any suitable time, e.g., micro-seconds, seconds, minutes, hours, or otherwise. It may also depend on the type of error correction (e.g., single-bit, dual-bit, etc.) used. For example, the excessive level amount set for determination step 504 can be larger, and thus the CPU can be operated at a lower supply voltage level, when a dual-bit correction scheme is used. For example, at the point where one out of every 10,000 lines has a single bit error, only 1 line out of every 1,000,000,000,000 would have a 3-bit error (detectable, but not correctable), resulting in a reasonable safety margin for most cache systems.
Note that in the embodiments of
In other embodiments, circuit 305 could be operated more akin to routine 200 and allow for both decreasing and increasing the supply voltage based on the corrected cell count. In such embodiments, the wait time at step 510 of routine 500 may be set relatively small for faster system response.
With reference to
It should be noted that in a system with error correction, one should not equate “excessive errors” or “excessive error rate” with incorrect operation. Instead, these terms indicate that the probability of incorrect operation is no longer negligible, or may be approaching the point where the quality goals would be compromised.
It should be noted that often “soft errors” (those that occur only once) have little (if any) dependence on Vcc. Thus, any of the described circuits, methods, or systems can be enhanced by ignoring errors that only occur once.
It should be noted that the depicted system could be implemented in different forms. That is, it could be implemented in a single chip module, a circuit board, or a chassis having multiple circuit boards. Similarly, it could constitute one or more complete computers or alternatively, it could constitute a component useful within a computing system.
The invention is not limited to the embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. For example, it should be appreciated that the present invention is applicable for use with all types of semiconductor integrated circuit (“IC”) chips. Examples of these IC chips include but are not limited to processors, controllers, chip set components, programmable logic arrays (PLA), application specific integrated circuits (ASICs), memory chips, network chips, and the like.
Moreover, it should be appreciated that example sizes/models/values/ranges may have been given, although the present invention is not limited to the same. As manufacturing techniques (e.g., photolithography) mature over time, it is expected that devices of smaller size could be manufactured. In addition, well known power/ground connections to IC chips and other components may or may not be shown within the FIGS. for simplicity of illustration and discussion, and so as not to obscure the invention. Further, arrangements may be shown in block diagram form in order to avoid obscuring the invention, and also in view of the fact that specifics with respect to implementation of such block diagram arrangements are highly dependent upon the platform within which the present invention is to be implemented, i.e., such specifics should be well within purview of one skilled in the art. Where specific details (e.g., circuits) are set forth in order to describe example embodiments of the invention, it should be apparent to one skilled in the art that the invention can be practiced without, or with variation of, these specific details. The description is thus to be regarded as illustrative instead of limiting.