The use of parallel architecture in processors is a typical way to reduce power consumption without a performance penalty at the architectural level, see for example, “Low Power Digital CMOS Design, IEEE Journal of Solid State Circuits, pp. 473-484, April 1992. For a given performance level, the use of parallelism allows a task to be distributed and the frequency and voltage can typically be scaled down without performance losses.
There is a trend for multi-core architecture to be used even in small microcontrollers. The challenge is typically how to effectively and advantageously use the additional resources that are available in a multi-core architecture.
Many applications in the area of small microcontrollers are typically based on an interrupt that triggers the execution of multiple tasks.
However, typical microcontrollers do not provide for the capability of distributing tasks to different cores for execution. The microcontroller code needs to be written to manage all the tasks at the same time while utilizing only one resource. If some tasks can be executed in a second core but still share common memory with the first core, the implementation is simplified while the power consumption may be reduced through voltage and frequency scaling without performance losses.
An exemplary embodiment in accordance with the invention uses “n” equal two cores with cores 310 and 320 (see
Pdynamic=CeffFV2 (1)
where Ceff is the total effective capacitance being switched per clock cycle, F is the running frequency of the application and V is the operating voltage. Ceff can be typically determined through post-layout simulation using standard electronic design automation tools.
The total dynamic power Pdynamic=Pcore 310+Pcore 320 required for the application running on both core 310 and 320 is modeled by Eq. (2) below (assuming no power consumption occurs when a core is idle) with reference to the example shown in
Pdynamic=0.4(CeffFV2)core310+0.6(CeffFV2)core320 (2)
where Eq. (2) assumes there is no overhead in connecting cores 310 and 320. The coefficients, here “0.4” and “0.6”, depend on how individual tasks are distributed between core 310 and core 320, affecting idle time. The coefficients are determined by the execution time of the tasks and the coefficients change in dependence on the length of the tasks.
If the running frequency is lower, the voltage can be scaled to match the new running frequency as shown in
Pdynamic(scaled)=Ceff(0.4F)core310V2new1+Ceff(0.6F)core320V2new2 (3)
where Vnew1 and Vnew2 can be determined using a normalized delay vs. voltage relationship for a given semiconductor technology (e.g. 90 nm, 60 nm etc.). For this, a simple alpha-power model described by Eq. (4) below may be used (see, for example, “Alpha-Power Law MOSFET Model and its Applications to CMOS Inverter Delay and Other Formulas”, IEEE Journal of Solid State Circuits, pp. 584-594, April (1990), incorporated by reference in its entirety):
where Vth is the threshold voltage of the transistor and α is the parameter associated with a specific semiconductor process technology (e.g. 90 nm, 60 nm etc.). Assuming that V=1.2 volts, Vth=0.43 volts and α=2.2 which corresponds to 90 nm technology, the normalized delay with respect to the delay at 1.2 volts is modeled by:
Plot 700 for Eq. (5) is shown in
For core 310, the running frequency is scaled down to 40% of the original frequency F for a particular task. Using
The power savings factor Psavings is modeled by Eq. (6) below (assuming insignificant power leakage):
with V=1.2 volts, Vnew1=0.86 volts and Vnew2=0.98 volts and gives Psavings=1.65 as the power savings factor.
In accordance with the invention, the power savings can be achieved if both cores 310 and 320 have a PLL (not shown) and a programmable LDO (not shown) (note that the power supply may be external to cores 310 and 320 in which case there is an external programmable LDO adjustable by the user), a DC-DC converter (typically for higher loads) or a switch capacitor converter (typically for lower loads). With respect to the example discussed above, after the user determines that the task running in core 310 executes for 40% of the time (with the idle time being 60%), the user sets up division of the output frequency by 2.5 using the configuration registers of the PLL integrated into core 310. Then, using the programmable LDO in core 310, the user sets the voltage to 0.86 volts for core 310. The same setup procedure is executed in core 320, but in this case the PLL integrated into core 320 is set up to divide the output frequency by 1.66 and the programmable output voltage is set to 0.98 volts using the programmable LDO in core 320. After the core setup is completed, the task can be executed with the appropriate power savings factor, Psavings.
The analysis above for power savings factor, Psavings, may be extended to n cores as modeled by Eq. (7):
where li is the frequency scaling factor for a task running on processor i and Vnew
For example, a multi-core system having 10 cores where each core now runs at 1/10th of the original operating frequency results in the supply voltage for each core being reduced to 0.63 volts (see
In
While the invention has been described in conjunction with specific embodiments, it is evident to those skilled in the art that many alternatives, modifications, and variations will be apparent in light of the foregoing description. Accordingly, the invention is intended to embrace all other such alternatives, modifications, and variations that fall within the spirit and scope of the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
6237058 | Nakagawa | May 2001 | B1 |
7206950 | Tanaka | Apr 2007 | B2 |
7882369 | Kelleher | Feb 2011 | B1 |
20030120702 | Jahnke | Jun 2003 | A1 |
20060225002 | Hassoun | Oct 2006 | A1 |
20080162764 | Tang | Jul 2008 | A1 |
20090228625 | Kulkarni | Sep 2009 | A1 |
20100117579 | Culbert | May 2010 | A1 |
20140052879 | Shimizuno | Feb 2014 | A1 |
20140181351 | Fatemi et al. | Jun 2014 | A1 |
20140181555 | Bodas | Jun 2014 | A1 |
20140304439 | Elahi | Oct 2014 | A1 |
Number | Date | Country |
---|---|---|
101000596 | Jul 2007 | CN |
101187908 | May 2008 | CN |
102063335 | May 2011 | CN |
102117261 | Jul 2011 | CN |
Entry |
---|
Analog devices, Charge Pump Regulator for Color TFT Panels, 2006, http://www.analog.com/media/en/technical-documentation/data-sheets/ADM8839.pdf, Revision C, figure 1 and general description. |
Chandrakasan, A. P. et al. “Low-Power CMOS Digital Design”, IEEE Journal of Solid-State Circuits, vol. 27, No. 4, pp. 473-484 (Apr. 1992). |
“NXP's New Dual-Core Cortex-M4 and M0 MCU Redefines Digital Signal Control”, NXP, 2 pgs, retrieved from the internet at: http://www.nxp.com/news/press-releases/2010/11/nxp-s-new-dual-core-cortex-m4-and-m0-mcu-redefines-digital-signal-control.html (2011). |
“MPC5676R: Qorivva 32-bit MCU for Powertrain Applications”, Freescale, 1 pg, retrieved from the internet at: http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPC5676R (2011). |
Number | Date | Country | |
---|---|---|---|
20150143141 A1 | May 2015 | US |