There are several methods and benchmarks for quantifying the energy consumption of embedded microcontroller units (MCUs) and related energy consumption benchmarks for common peripheral functions such as Bluetooth low energy and Wi-Fi. Over time, MCU designs have changed to support the demand for higher energy efficiency. In addition, there is another world of energy consumption benchmarks for servers (SPECpower—a benchmark for web servers running Java), data centers (Power Usage Effectiveness, PUE, international standard ISO/IEC 30134-2:2016), and other areas that are beyond the scope of this FAQ.
Energy consumption is different from power consumption. Power consumption for low power devices can be measured in milliwatts (mW), while energy consumption is often measured in micro Joules (µJ). Power consumption is most relevant with power sources such as rechargeable batteries that can only supply a few mW (milliamps, mA, of current) without being damaged. Drawing higher peak currents can permanently reduce a battery’s capacity.
Energy consumption determines how much energy is drained from the battery to perform a given task. Energy consumption is the integral of the power consumption over the time needed to perform the operation. Since there are two variables involved, the power consumption and the specific operation being performed, most energy consumption benchmarks specify one or a series of tasks to be completed and then provide a metric based on the µJ of energy needed to complete the defined tasks.
There are additional considerations when comparing the energy consumption of devices like the Internet of Things (IoT) wireless sensor nodes that spend a great deal of time in standby. For those devices, the total power consumed equals the Active mode power plus Standby (sleep) mode power plus Wakeup power (Figure 1).
So, it’s not just processing that consumes energy; waking up can consume significant amounts of wasted energy since the MCU cannot do any processing until all of its digital and analog subsystems are fully awake and operational.
For example, some systems wake up and use an on-chip ADC to sample a sensor input. In those cases, it’s necessary to allow time for slower-settling analog circuitry to settle as well as the quicker-settling digital circuitry. The wakeup characteristics of various analog elements often have a significant impact; voltage references or regulators can take using external decoupling capacitors can take several milliseconds to settle. In some applications, an MCU can use just as much energy during wakeup as it does when in active mode.
IoT and ULP
Ultra-Low Power (ULP) describes MCUs designed to run for up to 10 years on a single primary battery or from harvesting pico-Joules of ambient energy. ULP MCUs are particularly useful for wireless IoT nodes, wearables, and similar low-power devices. As shown above, total power consumption is a complex measurement that can make it difficult to identify the “best” MCU for a given application. For example, energy harvesting-powered systems may benefit from the lowest active current requirement. But, for systems that spend most of the time in sleep/standby mode, quiescent current may be the critical parameter. In addition, non-computing elements such as integrated voltage regulators can impact MCU energy efficiency (Figure 2). An integrated low drop out (LDO) regulator can help significantly reduce power consumption. For example, a battery-powered MCU without an LDO regulator can consume up to 50% more power from fully-charged batteries delivering about 3Vdc, compared with depleted batteries delivering about 1.8Vdc. Adding an integrated LDO results in a flat current consumption curve and reduced overall power consumption.
ULP Benchmarks
Founded by EDN in 1997, the mission of the EDN Embedded Microprocessor Benchmark Consortium (EEMBC) was to develop unified MCU performance benchmarks. When the EEMBC became independent of EDN in 2012, the short-hand name, EEMBC, was kept. Today, the EEMBC ULPMark Working Group develops profiles and benchmarks for MCU power and energy analysis. There are currently two profiles for deep sleep and one for active workloads:
- ULPMark-CoreProfile benchmark, also called the ULPMark-CP, measures the energy cost of deep sleep by focusing on the MCU core, specifically the energy cost in sleep and the transition to and from active mode. The Core Profile runs on a one-second duty cycle combining a common set of workloads (defined below) with an extended period of inactivity to enable the use of microcontroller low-power modes (Figure 3).
- ULPMark-PeripheralProfile measures common peripherals’ energy impact on deep-sleep by activating one or more of four peripherals in one of ten fixed configurations, called slots. The peripherals include:
- Real Time Clock (RTC)
- Analog-to-Digital conversion (ADC) at 1 Hz and 1 kHz
- Pulse-width Modulation (PWM) at 32 kHz and 1 MHz
- Serial Peripheral Interface (SPI)
- ULPMark-CM benchmark runs the classic CoreMark benchmark for active workloads.
The active portion of the ULPMark-CP benchmark runs for about 3% of the total runtime. It requires data to be saved during deep sleep through the use of so-called “retention RAM.” Since it is not expected that a sleepy edge node would clear its RAM after every sleep cycle, the exit- and enter-costs of retention RAM are designed to measure the true energy cost of sleep modes. During the active portion of the test, the benchmark implements the following workload (portable across 8-, 16-, and 32-bit MCUs):
- Generate 20 GPIO pulses
- Perform an 8-bit linear interpolation
- Perform a 16-bit integration (filter)
- Compute a 7-segment LCD binary conversion (saving state)
- Search for a substring in a string
- Perform a small bubble-sort
- Permute the bits of a string based on input and previous state
In order to provide benchmark scores that are larger for reduced energy consumption (better performance), the various ULPMark benchmarks use formulas that incorporate the reciprocal of the energy values measured in µJ.
ULPMark-CP benchmark score = 1000 / median energy consumption (5 runs of the benchmark for 10 seconds)
ULPMark-PeripheralProfile benchmark score = 10000 / median energy consumption (5 runs of the benchmark’s ten slots, also for 10 seconds)
ULPMark-CM benchmark score = 1000 * (iterations / total energy in µJ)
IoT-specific benchmarking
In addition to the ULP benchmarks, EEMBC offers a suite of benchmarks for quantifying the energy efficiency of IoT edge devices. The IoTMark determines the combined energy consumption of an edge device consisting of a sensor, a processor, and a radio interface. The two benchmarks included in IoTMark are the IoTMark-BLE, a Bluetooth Low Energy (BLE) benchmark, and the IoTMark-Wi-Fi, a Wi-Fi benchmark that is still under development.
Designers can use the IoTMark-BLE profiles to model an actual IoT edge node, including an MCU, an I2C sensor, and a BLE radio through sleep, advertise, and connected operation. The benchmark is structured to quantify the tradeoffs between the connection interval, frequency, and various sensor characteristics, with overall energy consumption.
The IoTMark-BLE benchmark uses the portable IoTConnect framework that supports any radio modules and MCUs and works with any software stack or embedded operating system. It’s highly flexible with user-defined connection intervals, advertise intervals, I2C transmit size and speed, BLE transmission power, and other system characteristics.
How about current consumption/MHz?
In processors of all types, power consumption is generally proportional to the operating frequency. At a given supply voltage, it’s possible to specify current consumption / MHz of clock frequency, such as current consumption/MHz at 3V. In addition to slowing the clock frequency to decrease energy consumption, disabling unused peripherals can reduce the amount of energy an MCU consumes (Figure 4). It’s also important to use the correct clock speed for comparisons. Utilizing the instruction clock speed is more meaningful than using the system clock speed. System clocks often run at twice the instruction execution speed, doubling the apparent operating efficiency.
The relationship between clock speed and current consumption is important when optimizing system-level efficiency. Slowing the clock speed during periods of lower system load can save energy without negatively impacting overall system performance. Dynamically changing the clock speed on the fly can be effective, but it can also be challenging. With some MCUs, it’s also necessary to adjust peripheral register settings dynamically to account for the changing clock speeds.
More energy-saving opportunities
Maintaining the processor section in an MCU in a low power state is usually the most effective way to save energy. For example, instead of waking up the processor to move data to and from various peripherals, the direct memory access (DMA) controller can be used. The DMA can effectively move data around in an MCU without the energy penalty from having the processor performing the same housekeeping function.
In addition, some MCUs include low-power peripherals dedicated to specific functions offloading activities from the processor. These peripherals can be used to efficiently implement a wide variety of common functions, including timing and measurement, simple user interfaces, safety-related monitoring, basic motor controls, and more, enabling the processor to remain in a low power state for longer periods.
Summary
Energy consumption is an important consideration in many applications employing embedded MCUs. Benchmarking the relative performance of various MCUs is only one aspect of designing energy-efficient devices. Optimizing the connection interval, frequency, power, and other characteristics of wireless communications can be critical in IoT nodes. And general design considerations such as using DMAs and other peripherals to offload activities from relatively energy-hungry processors can lead to lower overall energy consumption.
References
Benchmarking MCU power consumption for ultra-low-power applications, Texas Instruments
How to Choose the Optimal Low Power MCU for Your Embedded System, Silicon Laboratories
Power consumption explained, Nordic Semiconductor
Strategies for Choosing the Appropriate Microcontroller when Developing Ultra Low Power Systems, Analog Devices
ULPMark™-CoreProfile, EEMBC
Leave a Reply