Is all the computing power offered by the platform actually needed all the time?
Microcontrollers' processing performance nowadays is comparable to that of personal computers of 20 years ago, which were already capable of fast operations and even processing real-time multimedia content. Embedded applications do not always require the CPU to run at full frequency. Especially when accessing peripherals, rather than crunching numbers, it does not matter how fast we clock the CPU and the bus. Both normal running mode and sleep mode require much less energy when the selected frequency is scaled down every single time CPU performance is not actually the bottleneck of the execution pipe.
Many microcontrollers are designed ...