Related subject matter is found in a patent application entitled “Guardband Reduction for Multi-Core Data Processor”, U.S. patent application Ser. No. 13/724,271, filed Dec. 21, 2012, now U.S. Pat. No. 9,223,383, by Srilatha Manne et al. and assigned to the assignee hereof.
This disclosure relates generally to data processors, and more specifically to power control for data processors.
Integrated circuits are specified to operate within a desired power supply voltage range. However merely ensuring proper operation within the specified range alone may not be sufficient. Abrupt changes in circuit activity may cause the internal power supply voltage to temporarily overshoot or undershoot its specified range. If the integrated circuit were designed and tested to operate only within the specified range, then the temporary overshoot and undershoot would cause some of the integrated circuits to occasionally malfunction.
For example, a multi-core data processor can undergo large variations in circuit activity. Typical multi-core data processors have between four and thirty-two data processor cores, and a multi-threaded operating system can assign data processor cores different program threads. The operating system can cause the processor running the code in each thread to operate in its active state until it encounters a barrier. The barrier occurs when multiple threads are simultaneously waiting for a condition to occur or for an operand to become available. Upon encountering the barrier for a particular thread, the operating system causes the data processor core running that thread to enter an idle state. Later, when the operand becomes available or the condition occurs, then the operating system releases the data processor cores corresponding to the threads waiting at the barrier at about the same time. This sudden release causes a spike in activity and a large undershoot on the power supply voltage.
In order to compensate for occasional undershoot or overshoot, circuit designers frequently add a guardband to extend the voltage range within which the circuit will operate properly. However adding the guardband often requires designers to adopt more conservative design practices. For example, adding a large guardband in design may cause the integrated circuit to operate more slowly than would otherwise be possible to meet the extended power supply voltage range, and testing the integrated circuit with the large guardband may cause some otherwise functional integrated circuits to fail functional tests and to be discarded.
In the following description, the use of the same reference numerals in different drawings indicates similar or identical items. Unless otherwise noted, the word “coupled” and its associated verb forms include both direct connection and indirect electrical connection by means known in the art, and unless otherwise noted any description of direct connection implies alternate embodiments using suitable forms of indirect electrical connection as well.
Generally, integrated circuits are designed to operate correctly within a specified power supply voltage range plus and minus a voltage guardband. Embodiments are described herein in which the guardband of a multi-core data processor can be reduced, or fewer failures will be encountered during operation. A multi-core data processor can undergo large variations in activity when certain events synchronize. For example, typical multi-core data processors have between four and thirty-two data processor cores. A multi-threaded operating system can assign data processor cores different program threads. The operating system can cause the processor running the code in each thread to operate in its active state until it encounters a barrier. The barrier occurs when multiple threads are simultaneously waiting for a condition to occur or for an operand to become available. Upon encountering the barrier for a particular thread, the operating system causes the data processor core running that thread to enter an idle state. Later, when the operand becomes available or the condition occurs, then the operating system releases the data processor cores corresponding to the threads waiting at the barrier at about the same time. This sudden release causes a spike in activity and a large undershoot (or “droop”) on the power supply voltage, which may define the size of the guardband required.
In some embodiments, a multi-core data processor includes multiple data processor cores each having a power state controller and a circuit, such as a power state bus or central power controller, connected to the data processor cores. The circuit provides a control signal in response to power states of multiple data processor cores. In response to a release signal, for example, each power state controller changes the power state from an idle state to an active state in dependence on the control signal. Thus when several cores are released at about the same time, such as after encountering a barrier, the data processor cores can return to the active state in a staged or slower manner to reduce power supply voltage undershoot and reduce the required guardband.
In some embodiments, each data processor core autonomously transitions from the idle state to the active state in response to a release signal based on the elapsed time from when it entered the idle state. These embodiments allow multiple data processor cores to stagger their return to the active state based on the variability of when they entered the idle state in the first place and potentially based on different pre-programmed delays, without the need for an extra circuit such as a power state bus or a central power controller to coordinate the power state change.
Each core identification register 132 has an output to provide a corresponding core identification number to power state bus 160. Each current power state register 134 has an input, and an output to provide a current power state. Together the core identification number and the current power state form one set of signals to identify the power state of data processor core 130. Each power state controller 136 has an input to receive a signal labeled “IDLE”, an input to receive a signal labeled “RELEASE”, N−1 sets of inputs to receive core identification numbers and power states from the other data processor cores, and an output connected to the input of current power state register 134.
Power state bus 160 receives a set of power signals from each of data processor cores 120, and conducts the N sets of power state signals between data processor cores 120 such that each data processor core outputs its own set of power state signals and receives power state signals from all other data processor cores. In this way, each data processor core can make decisions about how to change its own power state based on the states of the other cores.
In operation, multi-threaded OS 170 causes various data processor cores to enter the idle state when their respective threads encounter a barrier.
While in the idle state, each power state controller 136 monitors the power states of the other data processor cores in multi-core data processor 110, and changes a current power state in response to the RELEASE signal from an idle state to an active state in dependence on the current power states in other data processor cores. In some embodiments, power state controller 136 of a particular data processor core in the idle state will allow the power state to change from idle to active without waiting on a power state transition of another data processor core if the number of idle data processor cores is less than a threshold. In some embodiments, power state controller 136 of the particular data processor core changes the current power state without waiting on a power state transition of any other data processor core if the core identification number indicates it is first in a predetermined order. For example, the predetermined order could be from lowest-numbered core to highest-numbered core. Alternatively the predetermined order could be from highest-numbered core to lowest-numbered core. In addition in some embodiments, core identification register 132 can be programmable by multi-threaded OS 170. Moreover in some embodiments, the power state controller of a selected data processor core changes the current power state without waiting on a power state transition of another data processor core if an elapsed time after the release signal exceeds an elapsed time threshold. This feature is useful to prevent deadlock conditions from arising.
The flow then proceeds to decision box 240 that includes determining whether a RELEASE signal was received. If the RELEASE signal was not received, the flow remains at decision box 240. If the RELEASE signal was received, the flow proceeds to a group of decision boxes 260 for determining when corresponding data processor cores 120 enter the active state, including decision boxes 262, 264, and 266.
Decision box 262 includes determining whether the number of idle data processor cores 120 is greater than a minimum number (CMINIDLE). If the number of idle data processor cores 120 is greater than CMINIDLE, the flow proceeds to action box 268 that includes broadcasting entry into the active state and resuming operation. If the number of idle data processor cores 120 is not greater than CMINIDLE, the flow proceeds to decision box 264 that includes determining if the data processor core identification number (core ID #) is less than the core identification number of other idle data processor cores 120.
If the core ID # is less than the core ID # of other idle data processor cores 120, the flow proceeds to action box 268. If the core ID # is not less than the core ID # of other idle data processor cores 120, the flow proceeds to decision box 266 that includes determining if an elapsed time is greater than an elapsed time threshold. If the elapsed time is greater than an elapsed time threshold, the flow proceeds to action box 268. If the elapsed time is not greater than an elapsed time threshold, the flow returns to decision box 262.
Each power state controller 332 has an input to receive a corresponding one of signals labeled “IDLE0”, “IDLE1”, and “IDLEN−1”, respectively, a second input, and an output. Each idle timer 334 has an input to receive one of signals IDLE0, IDLE1, and IDLEN−1, respectively, an input to receive one of signals labeled “RELEASE0”, “RELEASE1”, and “RELEASEN−1”, respectively, and an output connected to the second input of power state controller 332. Each current power state register 336 has an input connected to the output of power state controller 332, and an output. Multi-threaded OS 370 provides signals IDLE0, IDLE1, IDLEN−1, RELEASE0, RELEASE1, and RELEASEN−1, to corresponding ones of data processor cores 320.
In operation, idle timer 334 for each data processor core provides a value on its output indicating an elapsed time between an activation of the corresponding IDLE signal and an activation of the corresponding RELEASE signal. Power state controller 332 transitions its corresponding data processor core from the active state to the idle state in response to the corresponding IDLE signal. It also transitions its corresponding data processor core from the idle state to the active state after a time determined by the elapsed time. The corresponding data processor core operates in the active state thereafter in response to the corresponding RELEASE signal. In this way, multi-core data processor 310 allows each data processor core to exit the idle state without the necessity of determining states of other data processor cores in multi-core data processor 310, and thus does not require a circuit such as power state bus 160 to communicate power state information of the other data processor cores. It also relies on the variability of times when the threads encounter the barrier to stagger the exit from idle when the barrier is released. In some embodiments, the amount of time could be made programmable to ensure a staggered exit in case the data processor cores also entered the idle state at about the same time.
In some embodiments, a data processor core exits the idle state and enters the active state if the output of its corresponding idle timer 334 exceeds an idle time threshold, but enters the active state in a dampened manner. The dampened manner could be, for example, using a reduced rate clock signal, limiting the highest P-state to a state lower than P0 and gradually raising it to P0, etc. In some embodiments, power state controller 332 exits the idle state and enters the active state in a dampened manner based on the output of idle timer 334. For example, the longer the data processor core was in the idle state, the slower the clock speed or the longer the ramp in clock speed to the highest available speed.
The flow then proceeds to decision box 440 that includes receiving a release indication. If a release indication is not received, the flow remains at decision box 440. If a release indication is received, the flow proceeds to decision box 462 that includes determining if the idle time is greater than an idle time threshold. If the idle time is not greater than an idle time threshold, the flow proceeds to action box 464 that includes entering the active state and resuming operation. If the idle time is greater than an idle time threshold, the flow proceeds to action box 466 that includes entering the active state in a dampened manner based on the idle time.
Each of data processor cores 520 has an input to receive the IDLE signal, and an input to receive the RELEASE signal. Each power state controller 532 has an input to receive a signal labeled “NUMBER OF IDLE CORES”, and an output to provide a corresponding one of signals labeled “IDLE0”, “IDLE1”, and “IDLEN−1”, respectively.
Central power controller 560 has a set of inputs to receive signals IDLE0, IDLE1, and IDLEN−1, from each power state controller 532, respectively, and an output to provide the NUMBER OF IDLE CORES signal to each power state controller 532. Multi-threaded OS 570 provides corresponding IDLE and RELEASE signals to each of data processor cores 520.
In operation, multi-core data processor 510 includes central power controller 560 to centrally control the power state transitions for data processor cores 520. Central power controller 560 provides the NUMBER OF IDLE CORES signal to each data processor core to indicate the number of data processor cores currently in the idle state. In response, when receiving a corresponding RELEASE signal, power state controller 532 of an idle data processor core changes the current power state from the idle state to the active state in dependence on the NUMBER OF IDLE CORES signal. In some embodiments, power state controller 532 changes from the idle state to the active state after a duration determined by the NUMBER OF IDLE CORES signal. The duration could be made programmable in order to stagger the wakeup of idle data processor cores after the release of a barrier. In some embodiments, the idle data processor core further wakes up more slowly if the NUMBER OF IDLE CORES exceeds a threshold.
In some embodiments, power state controller 532 exits the idle state and enters the active state for a particular data processor core more slowly if the total number of idle data processor cores 520 exceeds a threshold.
In some embodiments, power state controller 532 exits the idle state and enters the active state in a staged wakeup where corresponding data processor cores 520 wake up in a first time period if control signal NUMBER OF IDLE CORES is not greater than a threshold and corresponding data processor cores 520 wake up in a second time period longer than the first time period if control signal NUMBER OF IDLE CORES is greater than the threshold.
In some embodiments, power state controller 532 exits the idle state and enters the active state in a staged wakeup where corresponding data processor cores 520 wake up in N clock cycles if control signal NUMBER OF IDLE CORES is not greater than a threshold and corresponding data processor cores 520 wake up in (N+M) clock cycles if control signal NUMBER OF IDLE CORES is greater than the threshold.
By counting the number of idle cores and broadcasting this number to all data processor cores using central power controller 560, multi-core data processor 510 is able to prevent all threads from releasing at the same time and does so with a small common circuit and a small amount of signal routing.
The flow then proceeds to decision box 640 that includes determining whether a RELEASE signal was received. If the RELEASE signal was not received, the flow remains at decision box 640. If the RELEASE signal was received, the flow proceeds to a group of boxes 650 for waking up the data processor core, including boxes 652, 654, and 656.
Decision box 652 includes determining whether a control signal (e.g. NUMBER OF IDLE CORES) is greater than a threshold. If the control signal is not greater than a threshold, the flow proceeds to action box 654 that includes waking up in a first time period. If the control signal is greater than a threshold, the flow proceeds to action box 656 that includes waking up in a second time period that is longer than the first time period.
The functions of
Moreover, the functions of
While particular embodiments have been described, various modifications to these embodiments will be apparent to those skilled in the art. For example, in the illustrated embodiments, multi-core data processors 110, 310, and 510 include N data processor cores 120, and N could be various numbers such as 4, 8, or 32. Data processor cores 120, 320, and 520 could be various logic circuits with active and idle states, such as central processing unit (CPU) cores, a graphics processor unit (GPU) cores, advanced processing unit (APU) cores, digital signal processor (DSP) cores, and the like. Data processor cores 120, 320, and 520, respectively, could use a common circuit design or different circuit designs.
Accordingly, it is intended by the appended claims to cover all modifications of the disclosed embodiments that fall within the scope of the disclosed embodiments.
Number | Name | Date | Kind |
---|---|---|---|
4317181 | Teza et al. | Feb 1982 | A |
4698748 | Juzswik et al. | Oct 1987 | A |
4747041 | Engel et al. | May 1988 | A |
4758945 | Remedi | Jul 1988 | A |
4952817 | Bolan et al. | Aug 1990 | A |
4980836 | Carter et al. | Dec 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 |
5428790 | Harper | Jun 1995 | A |
5485127 | Bertoluzzi et al. | Jan 1996 | A |
5504909 | Webster et al. | Apr 1996 | 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 |
5812860 | Horden | 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 | Apr 1999 | A |
5940785 | Georgiou | Aug 1999 | A |
5991883 | Atkinson | Nov 1999 | A |
6047248 | Georgiou | Apr 2000 | A |
6079025 | Fung | Jun 2000 | A |
6119241 | Michail | Sep 2000 | A |
6141762 | Nicol et al. | Oct 2000 | A |
6311287 | Dischler et al. | Oct 2001 | B1 |
6691236 | Atkinson | Feb 2004 | B1 |
6711447 | Saeed | Mar 2004 | B1 |
6785826 | Durham et al. | Aug 2004 | B1 |
6789037 | Gunther | Sep 2004 | B2 |
6789207 | Maejima | Sep 2004 | B1 |
6792582 | Cohn et al. | Sep 2004 | B1 |
6804632 | Orenstien et al. | Oct 2004 | B2 |
6845456 | Menezes et al. | Jan 2005 | B1 |
6859882 | Fung | Feb 2005 | B2 |
6889332 | Helms et al. | May 2005 | B2 |
6895520 | Altmedj | May 2005 | B1 |
6908227 | Rusu | Jun 2005 | B2 |
6922783 | Knee | Jul 2005 | B2 |
6931559 | Burns et al. | Aug 2005 | B2 |
6976182 | Filippo | Dec 2005 | B1 |
6978389 | Jahnke | Dec 2005 | B2 |
6993669 | Sherburne | Jan 2006 | B2 |
7028196 | Soltis | Apr 2006 | B2 |
7032119 | Fung | Apr 2006 | B2 |
7051218 | Gulick | May 2006 | B1 |
7174467 | Helms | Feb 2007 | B1 |
7216064 | Pippin | May 2007 | B1 |
7228441 | Fung | Jun 2007 | B2 |
7237129 | Fung | Jun 2007 | B2 |
7254721 | Tobias | Aug 2007 | B1 |
7272735 | Fung | Sep 2007 | B2 |
7281140 | Burns | Oct 2007 | B2 |
7376848 | Beard | May 2008 | B2 |
7484111 | Fung | Jan 2009 | B2 |
7496788 | Alfieri et al. | Feb 2009 | B1 |
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 | Jan 2010 | B2 |
7650518 | Allarey et al. | Jan 2010 | B2 |
7664971 | Oh | Feb 2010 | B2 |
7721125 | Fung | May 2010 | B2 |
7822967 | Fung | Oct 2010 | B2 |
8074092 | Fung | Dec 2011 | B2 |
8086884 | Naffziger | Dec 2011 | B2 |
8261285 | Felter et al. | Sep 2012 | B2 |
8417848 | Yang et al. | Apr 2013 | B2 |
20020004912 | Fung | Jan 2002 | A1 |
20030030326 | Shenai et al. | Feb 2003 | A1 |
20030122429 | Zhang | Jul 2003 | A1 |
20030135768 | Knee | Jul 2003 | A1 |
20030188208 | Fung | Oct 2003 | A1 |
20030196126 | Fung | Oct 2003 | A1 |
20030200473 | Fung | Oct 2003 | A1 |
20040117678 | Soltis | Jun 2004 | A1 |
20040117680 | Naffziger | Jun 2004 | A1 |
20050108582 | Fung | May 2005 | A1 |
20050177755 | Fung | Aug 2005 | A1 |
20050289365 | Bhandarkar | Dec 2005 | A1 |
20060248324 | Fung | Nov 2006 | A1 |
20060248325 | Fung | Nov 2006 | A1 |
20060248358 | Fung | Nov 2006 | A1 |
20060248359 | Fung | Nov 2006 | A1 |
20060248360 | Fung | Nov 2006 | A1 |
20060248361 | Fung | Nov 2006 | A1 |
20060253717 | Fung | Nov 2006 | A1 |
20060259796 | Fung | Nov 2006 | A1 |
20060259797 | Fung | Nov 2006 | A1 |
20060265608 | Fung | Nov 2006 | A1 |
20060265609 | Fung | Nov 2006 | A1 |
20070101173 | Fung | May 2007 | A1 |
20080005592 | Allarey et al. | Jan 2008 | A1 |
20090132844 | Allarey et al. | May 2009 | A1 |
20110219382 | Hou | Sep 2011 | A1 |
20130007413 | Thomson et al. | Jan 2013 | A1 |
Number | Date | Country |
---|---|---|
0632360 | Jan 1995 | EP |
03014902 | Feb 2003 | WO |
Entry |
---|
T. Miller, R. Thomas, X. Pan and R. Teodorescu, “VRSync: Characterizing and Eliminating Synchronization-Induced Voltage Emergencies in Many-core Processors”, Jun. 2012, p. 249 to p. 260, 39th Annual International Symposium on Computer Architecture (ISCA). |
Advanced Micro Devices, Inc., “BIOS and Kernel Developer's Guide (BKDG) for AMD Family 15h Models 00h-0Fh Processors”, pp. 1-2 and pp. 60-88, Nov. 14, 2011, 42301, Rev 3.04, Advanced Micro Devices, Inc., One AMD Place, Sunnyvale, CA 94085. |
R. Joseph, D. Brooks, and M. Martonosi, “Control Techniques to Eliminate Voltage Emergencies in High Performance Processors,” Int'l Symposium on High-Performance Computer Architecture, 2003. |
E. Grochowski, D. Ayers, and V. Tiwari, “Microarchitectural Simulation and Control of di/dt-induced Power Supply Voltage Variation,” Int'l Symposium on High-Performance Computer Architecture, 2002. |
M. Powell and T. N. Vijaykumar, “Exploiting Resonant Behavior to Reduce Inductive Noise,” Int'l Symp. on Computer Architecture, 2004. |
W. EL-Essawy and D. Albonesi, “Mitigating Inductive Noise in SMT Processors,” International Symposium on Low Power Electronics and Design, 2004. |
M. S. Gupta, K. Rangan, M. D. Smith, G.-Y. Wei, and D. M. Brooks, “Towards a Software Approach to Mitigate Voltage Emergencies,” International Symposium on Low-Power Electronics and Design, 2007. |
K. Hazelwood and D. Brooks, “Eliminating Voltage Emergencies via Microarchitectural Voltage Control Feedback and Dynamic Optimization,” International Symposium on Low-Power Electronics and Design, 2004. |
C. Lefurgy, A. Drake, M. Floyd, M. Allen-Ware, B. Brock, J. Tierno, and John Carter, “Active Management of Timing Guardband to Save Energy in POWER7”, Proceedings of the 44th Annual International Symposium on Microarchitecture, Dec. 2011. |
V. J. Reddi, M. S. Gupta, G. Holloway, G. Wei, M. D. Smith, D. Brooks, “Voltage Emergency Prediction: Using Signatures to Reduce Operating Margins,” HPCA, 2009. |
Compaq Computer Corporation, Intel Corporation, Microsoft Corporation, Phoenix Technologies Ltd. and Toshiba Corporation, “Advanced Configuration and Power Interface Specification”, 481 Pages, Revision 2.0, Jul. 27, 2000. |
Anton Shilov, “AMD Unveils Bulldozer Micro-Architecture Peculiarities”, 3 Pages, http://www.xbitlabs.com/news/cpu/display/20100824154814—AMD—Unveils—Details—About—Bulldozer—Microprocessors.html, Aug. 24, 2010. |
Actions on Merits for Copending U.S. Appl. No. 13/724,133, filed Dec. 21, 2012. |
K. Nowka et al., “A 0.9V to 1.95V Dynamic Voltage-Scalable and Frequency-Scalable 32b PowerPC Processor,” 2002 IEEE International Solid-State Circuits Conference, Session 20, Microprocessors, 20.4, 0-7803-7335-9, 2 pages. |
K. 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. |
K. Suzuki et al., “A 300MIPS/W RISC Core Processor with Variable Supply-Voltage Scheme in Variable Threshold-Voltage CMOS,” IEEE 1997 Custom Integrated Circuits Conference, 0-7803-3669-0, pp. 587-590. |
T. Burd et al., “A Dynamic Voltage Scaled Microprocessor System,” IEEE Journal of Solid-State Circuits, vol. 35, No. 11, Nov. 2000, pp. 1571-1580. |
S. Sakiyama et al., “A lean power management technique: The lowest power consumption for the given operating speed of LSIs,” 1997 Symposium on VLSI Circuits Digest of Technical Papers, 4-930813-76-X, pp. 99-100. |
S. Gutta et al., “A Low-Power Integrated x86-64 and Graphics Processor for Mobile Computing Devices,” 2011 IEEE International Solid-State Circuits Conference, Session 15, High-Performance SoCs & Components, 15.4, Feb. 22, 2011, pp. 270-272. |
L. 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. |
P. Macken et al., “A Voltage Reduction Technique for Digital Systems,” 1990 IEEE International Solid-State Circuits Conference, Session 15, Innovative Circuit Design, FPM 15.2, 0193-6530/90/0000-0238, Feb. 16, 1990, pp. 238-239. |
Compaq Computer Corporation, Intel Corporation, Microsoft Corporation, Phoenix Technologies Ltd. & Toshiba Corporation, “Advanced Configuration and Power Interface Specification,” Revision 2.0a, Mar. 31, 2002, 500 pages. |
D. Marculescu et al., “Application-Driven Processor Design Exploration for Power-Performance Trade-off Analysis,” 2001 IEEE, 0-7803-7247-6/01, pp. 306-313. |
M. Pedram, “CAD for Low Power: Status and Promising Directions,” 1995 IEEE International Symposium on VLSI Technology, Systems, and Applications, 0-7803-2773-X, pp. 331-336. |
G. Semeraro et al., “Dynamic Frequency and Voltage Control for a Multiple Clock Domain Microarchitecture,” Proceedings of the 35th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-35), 1072-4451/02, 2002, 12 pages. |
S. Akui et al., “Dynamic Voltage and Frequency Management for a Low-Power Embedded Microprocessor,” 2004 IEEE International Solid-State Circuits Conference, Session 3, Processors, 3.5, Feb. 16, 2004, 10 pages. |
G. Semeraro et al., “Energy-Efficient Processor Design Using Multiple Clock Domains with Dynamic Voltage and Frequency Scaling,” Proceedings of the Eighth International Symposium on High-Performance Computer Architecture (HPCA'02), 1503-0897/02, 2002, 12 pages. |
Intel Corporation, “Intel Pentium 4 Processor in the 423-pin Package at 1.30, 1.40, 1.50, 1.60, 1.70, 1.80, 1.90 and 2 GHz,” Datasheet, 249198-005, Aug. 2001, 90 pages. |
Intel Corporation, “Intel Pentium 4 Processor in the 478-Pin Package at 1.40 GHz, 1.50 GHz, 1.60 GHz, 1.70 GHz, 1.80 GHz, 1.90 GHz, and 2 GHz,” Datasheet, 249887-003, Apr. 2002, 100 pages. |
D. Lackey et al., “Managing Power and Performance for System-on-Chip Designs using Voltage Islands,” IEEE, 0-7803-7607-2/02, 2002, pp. 195-202. |
A. Iyer et al., “Microarchitecture—Level Power Management,” IEEE Transactions on Very Large Scale Integration Systems (VLSI) Systems, vol. 10, No. 3, Jun. 2002, 1063-8210/02, pp. 230-239. |
A. Iyer et al., “Power and Performance Evaluation of Globally Asynchronous Locally Synchronous Processors,” Proceedings of the 29th Annual International Symposium on Computer Architecture (ISCA'02), 1063-6897/02, 2002, 11 pages. |
A. Iyer et al., “Power Aware Microarchitecture Resource Scaling,” IEEE, 1530-1591/01, 2001, pp. 190-196. |
A. Iyer et al., “Power Efficiency of Voltage Scaling in Multiple Clock, Multiple Voltage Cores,” IEEE, 0-7803,7607-2/02, 2002, pp. 379-386. |
K. Niyogi et al., “Speed and Voltage Selection for GALS Systems Based on Voltage/Frequency Islands,” IEEE, 0-7803-8736-8/05, 2005, pp. 292-297. |
T. Pering et al., “The Simulation and Evaluation of Dynamic Voltage Scaling Algorithms,” ACM, 1-58113-059-7/98/0008, 1998, pp. 76-81. |
H. Sanchez et al., “Thermal Management System for High Performance PowerPC Microprocessors,” IEEE, 1063-6390/97, 1997, pp. 325-330. |
E. Talpes et al., “Toward a Multiple Clock/Voltage Island Design Style for Power-Aware Processors,” IEEE Transactions on Very Large Scale Integration (VSLI) Systems, vol. 13, No. 5, May 2005, 1063-8210, pp. 591-603. |
T. Pering et al., “Voltage Scheduling in the IpARM Microprocessor System,” ACM, 1-58113-190-9/00/0007, 2000, pp. 96-101. |
Actions on Merits for Copending U.S. Appl. No. 13/724,271, filed Dec. 21, 2012. |
Number | Date | Country | |
---|---|---|---|
20140181554 A1 | Jun 2014 | US |