This invention relates to processor power control apparatus and methods.
The Advanced Configuration and Power Interface (ACPI) specification provides a standard for operating system-centric device configuration and power management. The ACPI specification defines various “states” as levels of power usage and/or features availability. ACPI states include: global states, e.g., G0-G3, device states, e.g., D0-D3, processor states, e.g., C0-C3, and performance states, e.g., P0-Pn. The operating system and/or a user may select a desired processor state and a desired performance state in an effort to save power. However, of ACPI P-States are not sufficient to allow host software or software on an external agent to achieve optimal performance given a particular power target.
A processor power limiter and method is provided. The processor includes a first programmable location configured to store a processor power target. A power monitor is configured to estimate a power dissipation due to processor load. A power controller is configured to adjust a processor power parameter based on the power target and the power dissipation. The processor may include an interface for an operating system. A second programmable location may be configured to store a software processor power target accessible by the operating system. The processor may also include a sideband interface for an external agent. A third programmable location may be configured to store an agent processor power target accessible by the external agent.
The processor power target may be set to the lowest value stored in the first and second programmable locations. The processor power target may also be set to the lowest value stored in the first, second and third programmable locations. The processor may be configured to estimate a power dissipation associated with multiple processor cores. The power controller may be configured to adjust a processor power parameter associated with multiple processor cores. The power controller may be configured to adjust a processor core voltage such that the power dissipation stays below the power target. The processor may also be configured to adjust a processor core frequency such that the power dissipation stays below the power target. The processor may be configured to estimate the power dissipation during a time window.
While operating, a given processor core may also be associated with one of several performance states or “P-States” (P0-Pn). P0 is typically the highest-performance state. P1-Pn are successively lower-performance states. Typically n is no greater than 16. Each P-state is associated with a processor core operating frequency and core voltage, e.g., Vcore. It should be understood that the actual power dissipation of a given processor, single or multi-core, when operating with a fixed frequency and core voltage, will vary with load. For example, at maximum frequency and core voltage and 100% load, a given processor may dissipate 120 watts. However, this same processor, operating at the maximum frequency and core voltage and a 0% load, may dissipate only 20 watts. Since processor loading is unpredictable, this may complicate processor power management.
Power management may be further complicated in large data centers with large numbers processors. For example, a given data center may have a maximum power constraint, e.g., the maximum power that may be delivered to a given group of computers. Under traditional power management schemes, there is little correlation between a given performance state and the actual power dissipated by a processor. In order to address this problem, processor power dissipation may be limited by a power target, e.g., a maximum power dissipation. The power target may be independent of the P-State. The use of a power control scheme based on a power target allows a data center to operate within its maximum power constraint. It should be understood that a single power target or multiple power targets could be used without departing from the scope of this disclosure. The power constraint may be adjusted as needed based on a variety of environmental conditions, e.g., the cost of electricity.
Table 1 below shows several power targets that may be used to limit processor power consumption:
In this example, the lowest value of the three power targets, ChipTdpLimit, SwTdpLimit or ApmlTdpLimit, is selected as the value used for a given processor power target. These limits are not tied to a discrete P-state and may operate within a range of P-states given the activity level of the applications running on the processor. The power targets may be adjusted by a variety of mechanisms. For example, initial values may be set via system BIOS.
ChipTdpLimit is typically set at manufacturing test time based upon the intended maximum power allowed for the processor. In general, ChipTdpLimit corresponds to the thermal design power of a particular ordering part number. A product is tested to fit a particular thermal design power which is dictated by the cooling solution and the voltage regulator capabilities, e.g., the amount of current it can supply. ChipTdpLimit sets an upper limit based on the physical constraints of the cooling solution. SwTdpLimit is typically controlled by the operating or host software. This power limit allows the host software to set a processor power target based on environment conditions know to the host, e.g., system/component temperatures, processor loading and the like. ApmlTdpLimit is generally controlled via a sideband interface such as an Advance Platform Management Link (APML). ApmlTdpLimit allows external agent software to set a processor power target based on environment conditions know to the external agent, e.g., data center power constraints and the like.
The power monitor 34 generally monitors the power dissipated by the processor 30 under the current workload. The power controller 34 generally controls one or more processor/core power parameters, e.g., the processor core voltage and/or frequency, so that the processor power dissipation does not exceed the power target. It should be understood that the power monitor may use a variety of different techniques to measure the current power dissipation. For example, the power monitor may track a variety of events that occur in the processor core in a given time window or sampling interval, e.g., the number of integer instructions executed, number of floating point instructions executed, the number of cache accesses. Based on this information, the power monitor may compute the power dissipation in the given time window.
As discussed above, the power monitor may track a variety of events that occur in the processor in a given time window, e.g., a predetermined number of clock cycles. The circuitry is initialized, e.g., all counts are set to zero, as shown by block 50. In this example, the power monitor tracks the number of integer instructions executed (block 52), number of floating point instructions executed (54) and the number of cache accesses (56). Each of these operations is generally associated with a power consumption estimation. Upon completion of the window, the power monitor calculates an estimated total power consumption or dissipation (measured power) as shown by block 58. This value is output to the power controller as shown by block 60. This process is repeated on a periodic or intermittent basis. It should be understood that a variety of power monitoring techniques may be used without departing from the scope of the invention. For example, power consumption may be estimated by measuring the node capacitance, e.g., switched capacitance and effective capacitance from crossover current. Use of such other power estimation techniques are within the scope of this disclosure.
It should be understood that many variations are possible based on the disclosure herein. Although features and elements are described above in particular combinations, each feature or element may be used alone without the other features and elements or in various combinations with or without other features and elements. The methods or flow charts provided herein may be implemented in a computer program, software, or firmware incorporated in a computer-readable storage medium for execution by a general purpose computer or a processor. Examples of computer-readable storage mediums include a read only memory (ROM), a random access memory (RAM), a register, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks, and digital versatile disks (DVDs).
Suitable processors include, by way of example, a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) circuits, any other type of integrated circuit (IC), and/or a state machine. Such processors may be manufactured by configuring a manufacturing process using the results of processed hardware description language (HDL) instructions and other intermediary data including netlists (such instructions capable of being stored on a computer readable media). The results of such processing may be maskworks that are then used in a semiconductor manufacturing process to manufacture a processor which implements aspects of the present invention.
Number | Name | Date | Kind |
---|---|---|---|
4698748 | Juzswik et al. | Oct 1987 | A |
4747041 | Engel et al. | May 1988 | A |
4952817 | Bolan et al. | Aug 1990 | A |
5086501 | DeLuca et al. | Feb 1992 | A |
5142684 | Perry et al. | Aug 1992 | A |
5167024 | Smith et al. | Nov 1992 | A |
5300831 | Pham et al. | Apr 1994 | A |
5307003 | Fairbanks et al. | Apr 1994 | A |
5396635 | Fung | Mar 1995 | A |
5423045 | Kannan et al. | Jun 1995 | A |
5504909 | Webster et al. | Apr 1996 | A |
5511205 | Kannan et al. | Apr 1996 | A |
5546591 | Wurzburg et al. | Aug 1996 | A |
5557551 | Craft | Sep 1996 | A |
5710929 | Fung | Jan 1998 | A |
5719800 | Mittal et al. | Feb 1998 | A |
5727193 | Takeuchi | Mar 1998 | A |
5745375 | Reinhardt et al. | Apr 1998 | A |
5752011 | Thomas et al. | May 1998 | A |
5758175 | Fung | May 1998 | A |
5778237 | Yamamoto et al. | Jul 1998 | A |
5781783 | Gunther et al. | Jul 1998 | A |
5787294 | Evoy | Jul 1998 | A |
5798918 | Georgiou et al. | Aug 1998 | A |
5799198 | Fung | Aug 1998 | A |
5812860 | Horden et al. | Sep 1998 | A |
5832284 | Michail et al. | Nov 1998 | A |
5838578 | Pippin | Nov 1998 | A |
5860125 | Reents | Jan 1999 | A |
5892959 | Fung | Apr 1999 | A |
5898232 | Reents et al. | Apr 1999 | A |
5940785 | Georgiou et al. | Aug 1999 | A |
6047248 | Georgiou et al. | Apr 2000 | A |
6079025 | Fung | Jun 2000 | A |
6119241 | Michail et al. | Sep 2000 | A |
6141762 | Nicol et al. | Oct 2000 | A |
6311287 | Dischler et al. | Oct 2001 | B1 |
6378074 | Tiong | Apr 2002 | B1 |
6393374 | Rankin et al. | May 2002 | B1 |
6564328 | Grochowski et al. | May 2003 | B1 |
6584571 | Fung | Jun 2003 | B1 |
6667648 | Stout et al. | Dec 2003 | B2 |
6785826 | Durham et al. | Aug 2004 | B1 |
6789037 | Gunther et al. | Sep 2004 | B2 |
6792582 | Cohn et al. | Sep 2004 | B1 |
6859882 | Fung | Feb 2005 | B2 |
6908227 | Rusu et al. | Jun 2005 | B2 |
6931559 | Burns et al. | Aug 2005 | B2 |
6976182 | Filippo | Dec 2005 | B1 |
6978389 | Jahnke | Dec 2005 | B2 |
6993669 | Sherburne, Jr. | Jan 2006 | B2 |
7032119 | Fung | Apr 2006 | B2 |
7051306 | Hoberman et al. | May 2006 | B2 |
7058826 | Fung | Jun 2006 | B2 |
7068319 | Barna et al. | Jun 2006 | B2 |
7100061 | Halepete et al. | Aug 2006 | B2 |
7134011 | Fung | Nov 2006 | B2 |
7216064 | Pippin | May 2007 | B1 |
7228441 | Fung | Jun 2007 | B2 |
7237129 | Fung | Jun 2007 | B2 |
7254721 | Tobias et al. | Aug 2007 | B1 |
7272735 | Fung | Sep 2007 | B2 |
7281140 | Burns et al. | Oct 2007 | B2 |
7337339 | Choquette et al. | Feb 2008 | B1 |
7376848 | Beard | May 2008 | B2 |
7415680 | Hoberman et al. | Aug 2008 | B2 |
7484111 | Fung | Jan 2009 | B2 |
7512822 | Fung | Mar 2009 | B2 |
7533283 | Fung | May 2009 | B2 |
7552350 | Fung | Jun 2009 | B2 |
7558976 | Fung | Jul 2009 | B2 |
7562239 | Fung | Jul 2009 | B2 |
7647513 | Tobias et al. | Jan 2010 | B2 |
7721125 | Fung | May 2010 | B2 |
7822967 | Fung | Oct 2010 | B2 |
7945885 | Hoberman et al. | May 2011 | B2 |
7996811 | Hoberman et al. | Aug 2011 | B2 |
8060765 | Cha et al. | Nov 2011 | B1 |
8074092 | Fung | Dec 2011 | B2 |
20020004912 | Fung | Jan 2002 | A1 |
20020004913 | Fung | Jan 2002 | A1 |
20020004915 | Fung | Jan 2002 | A1 |
20020007463 | Fung | Jan 2002 | A1 |
20020007464 | Fung | Jan 2002 | A1 |
20020062454 | Fung | May 2002 | A1 |
20030188208 | Fung | Oct 2003 | A1 |
20030196126 | Fung | Oct 2003 | A1 |
20050223251 | Liepe et al. | Oct 2005 | A1 |
20070050647 | Conroy et al. | Mar 2007 | A1 |
20070198863 | Bose et al. | Aug 2007 | A1 |
20080098242 | Peterson | Apr 2008 | A1 |
20080301475 | Felter et al. | Dec 2008 | A1 |
20090077399 | Noda et al. | Mar 2009 | A1 |
20090259869 | Naffziger | Oct 2009 | A1 |
20090276644 | Goodnow et al. | Nov 2009 | A1 |
20100268974 | Floyd et al. | Oct 2010 | A1 |
20120137158 | Nelluri et al. | May 2012 | A1 |
Number | Date | Country |
---|---|---|
0632360 | Jan 1995 | EP |
Entry |
---|
File History for U.S. Appl. No. 60/468,742, filed May 7, 2003. |
File History for U.S. Patent No. 5,778,237, issued Jul. 7, 1998. |
File History for U.S. Patent No. 7,051,306, issued May 23, 2006. |
File History for U.S. Patent No. 7,415,680, issued Aug. 19, 2008. |
File History for U.S. Patent No. 7,945,885, issued May 17, 2011. |
Memorandum Opinion and Order Construing Claim Terms of United States Patent Nos. 5,577,230; 5,724,505; 5,958,036; 6,141,762; 6,256,725;7,051,306; 7,415,680; 7,945,885; and 7,996,811; Civil Action No. 6:11-cv-00173, Document 252, Filed Apr. 29, 2013; Mosaid Techs, Inc. et al. v. Freescale Semiconductor, Inc. et al.; United States District Court for the Eastern District of Texas—Tyler Division, pp. 1-49. |
AMD PowerNow!™ Technology, Dynamically Manages Power and Performance (Informational White Paper); Publication #24404 Rev: A; Issue Date: Nov. 2000, 18 pages. |
Thomas D. Burd, et al. “A Dynamic Voltage Scaled Microprocessor System”; IEEE Journal of Solid-State Circuits, vol. 35, No. 11, Nov. 2000, pp. 1571-1580. |
Thomas D. Burd, et al. “WA 17.4 A Dynamic Voltage Scaled Microprocessor System”; 2000 IEEE International Solid-State Circuits Conference (07803-5843-8/00), Feb. 7-9, 2000, 3 pages. |
Kevin J. Nowka, et al. “A 32-bit PowerPC System-on-a-Chip With Support for Dynamic Voltage Scaling and Dynamic Frequency Scaling”; IEEE Journal of Solid-State Circuits, vol. 37, No. 11, Nov. 2002, pp. 1441-1447. |
Luca Benini, et al. “A Survey of Design Techniques for System-Level Dynamic Power Management”; IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 8, No. 3, Jun. 2000, pp. 299-316. |
David E. Lackey, et al. “Managing Power and Performance for System-on-Chip Designs using Voltage Islands”; IBM Microelectronics Division, Essex Junction, Vermont 05452, USA (0-7803-7607-2/02); © 2002 IEEE, Nov. 10-14, 2002, pp. 195-202. |
Anoop Iyer, et al. “Power Efficiency of Voltage Scaling in Multiple Clock, Multiple Voltage Cores”; Department of Electrical and Computer Engineering, Carnegie Mellon University, Pittsburgh, PA 15213 (0-7803-7607-2/02); © 2002 IEEE, Nov. 10-14, 2002, pp. 379-386. |
Hector Sanchez, et al. “Thermal Management System for High Performance PowerPC™ Microprocessors”; Motorola, Inc./Apple Computer Corporation, (1063-6390/97); © 1997 IEEE, Feb. 23-26, 1997, pp. 325-330. |
Emil Talpes, et al. “Toward a Multiple Clock/Voltage Island Design Style for Power-Aware Processors”; IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 13, No. 5, May 2005, pp. 591-603. |
Number | Date | Country | |
---|---|---|---|
20120159198 A1 | Jun 2012 | US |