1. Field of the Invention
The present invention is related to computer systems in which processor clock frequencies are adaptively adjusted in response to dynamic measurements of operating conditions, and in particular to a computer system in which power supply voltage domains are adjusted to cause an adaptive change in performance of the processors in the corresponding voltage domains.
2. Description of Related Art
In recent computer systems, processor cores provide adaptive adjustment of their performance, e.g., by adjusting processor clock frequency, so that higher operating frequencies can be achieved, under most operating conditions and with most production processors, than could be otherwise specified. A specified maximum operating frequency for a given power supply voltage, and similarly a specified minimum power supply voltage for a given operating frequency, are necessarily conservative due to variable operating ranges of temperature and voltage and also ranges of manufacturing process variation for the particular device, i.e., the processor integrated circuit (IC). Workload differences also contribute to the need to provide operating margins for fail-safe operation, as the local voltage and temperatures at particular processor cores and particular locations within each processor core can vary depending on the particular program code being executed, and particular data or other input being processed. However, with an adaptive adjustment scheme, the effects of process, temperature and voltage can be taken into account, permitting much less conservative operation than would be possible in a fixed clocking scheme.
One technique for adaptive adjustment of processor core clock frequency uses periodic measurements of propagation delay of one or more circuits that synthesize a critical signal path in the processor core. The critical path is a signal path that is determinative of the maximum operating frequency of the processor core under the instant operating conditions, i.e., the critical path is the signal path that will cause operating failure should the processor clock frequency be increased beyond an absolute maximum frequency for the instant operating conditions. The critical path may change under differing operating conditions, e.g., with temperature changes or with power supply voltage changes or with workload changes. Therefore, the critical path monitoring circuits (CPMs) as described above generally include some flexibility in the simulation/synthesis of the critical path delay, as well as computational ability to combine the results of simpler delay components to yield a result for a more complex and typically longer, critical path. Other techniques include using ring oscillators to determine the effects of environmental factors and process on circuit delay. Once the critical path delay is known for the present temperature and power supply voltage, the processor clock frequency can be increased to take advantage of any available headroom. In one implementation, multiple CPMs distributed around the processor IC die provide information to a clock generator within the processor IC that uses a digital phase-lock loop (DPLL) to generate the processor clock. The combined information allows the clock generator to adaptively adjust the processor clock to the instant operating conditions of the processor IC, which is further adapted to the processor IC's own characteristics due to process variation.
Other techniques that may be used for processor frequency adjustment under dynamic operating conditions may use extrinsic environmental information to set the processor clock frequency, e.g., the temperature and power supply voltage within or without the processor IC die, to estimate the maximum processor frequency, rather than the more direct approach of measuring delay of a synthesized critical path. While the extrinsic measurements do not typically account for process variation, a significant performance advantage can still be realized by compensating for temperature and voltage variation, especially for processor ICs in which manufacturing process variation has a relatively minor impact on clock frequency. Further, other throttling mechanisms, such as adjusting the instruction dispatch, fetch or decode rates of the processor cores can be used to adjust the effective processor clock frequency, and thereby adapt the operating performance/power level of a processor in conformity with environmental measurements.
Once a system is implemented using adaptively-clocked processors, such as those described above, the individual frequencies of the processor cores will necessarily vary within the system and will be distributed according to their local power supply voltage, temperatures, process characteristics of the individual processors, and workloads being executed, to achieve the maximum performance available while maintaining some safety margin. Such operation is not necessarily desirable. For example, in distributed computing applications that serve multiple computing resource customers, such as virtual machines hosting web servers or other cloud computing applications, the frequency of the processor clock or other measure of performance of one or more cores assigned to particular virtual machines may be specified as an absolute minimum, and falling below the specified performance level cannot be permitted. Exceeding the specified performance by too great a margin is also undesirable, as such operation typically wastes power. Further, in some applications, accounting of processor usage may be tied to the processor clock frequency or other performance level metric, which could cause a higher charge for a processor operating at a frequency exceeding a specified operating frequency for a customer's requirements.
Therefore, it would be desirable to provide a control method and system that controls processor performance in a system that has one or more processors individually clocked by an environmentally-adaptive clocking scheme.