I met with EEMBC while at Design West to discuss benchmarks and gained some additional perspectives on their use and utility.
Along the way, I brought up the idea of a benchmark that might be useful for developers working on the Internet of Things (IoT). If enough people ask for it, the consortium might consider developing one.
The benchmark would measure the total energy used by an MCU with wireless connectivity from the time it wakes up to send a message until it goes back to sleep. The thinking behind this peculiar-sounding measurement is that ordinary datasheet numbers cannot help us predict the battery life of a wireless MCU that sleeps unless it needs to send a message.
We can gather from datasheets a figure for the power an MCU and its radio consume while in a sleep mode. We can also estimate the power they will use while awake and communicating to the network. What we can't easily determine are the power used during the transitions between or the duration of activity when communicating over the network.
A useful whitepaper, "Low Power Design Basics," from Silicon Labs explains in some detail the ramifications of wake-up time. In a wireless IoT application, for instance, the power profile of an MCU might look like the figure below.
Wake-up-and-communicate power profile
In terms of providing functionality, though, the time an MCU requires to resume normal operation after being in sleep mode represents wasted energy. The MCU spends this time just getting its stacks and registers and peripherals all set to resume processing, not doing any actual work. The longer this transition time, the greater the total energy needed for the wake-up-and-communicate operation.
Some 32-bit vendors have also pointed out that the duration of the active time sending the message will depend on the processor's performance. Their claim is that a 32-bit processor would be able to perform its communications task much faster than a smaller processor, thus reducing average power, even though the 32-bit MCU's active power might be higher.
Both arguments sound reasonable. They are also terribly difficult to quantify. All we can say for sure is that shorter wakeup times reduce wasted energy, and shorter active times help minimize battery drain. But how to balance one against another?
This is where a benchmark could come in handy. Using some representative message length, have the MCU wake from sleep mode, send its message, and return to sleep, all while you measure current draw. Then, integrate the power profile to find total energy used. The resulting figure of merit will provide an immediate way of comparing different MCUs for their power efficiency in IoT applications.
Would you find a wake-up energy benchmark like this useful? Perhaps you have already developed one of your own. Let us know either way, and feel free to suggest other useful new benchmarks you'd like to see.