EDIT:
> If the hardware doesn't make allowance for this, then the CPU will have to run useless instructions until it is needed for real work.
Do any consumer processors (think Intel iBlah) not support turning off the CPU when it's not needed?
EDIT:
> If the hardware doesn't make allowance for this, then the CPU will have to run useless instructions until it is needed for real work.
Do any consumer processors (think Intel iBlah) not support turning off the CPU when it's not needed?
Generally, most modern CPUs support turning off when not needed, however, this is generally referred to as power-on-standby (S3, IIRC). The CPU is off, most things are off, RAM is on.
The CPU itself has to continue to run because there is almost no timeperiod larger than a few seconds in which there is truly nothing to do and shutting down CPU cores and clocking the remaining one is efficient enough.
Pretty much until the early 2000's, PC processors essentially idled at full speed. There are probably some super-cheap, bottom-of-the-barrel, low-end ARM chips still being made somewhere that can't sleep or down-clock.
The aim was low-power-usage, but they came at it from a different direction. This is referring to the OS control over power-states on a traditional (clocked) processor.
AMULET gained its low-power capabilities from not clocking any unused functional blocks during normal usage, same aim, different strategy.
Its standard fare really. dropping into low power mode in an idle loop has been standard practice for that long also.
In embedded systems, the real difference is how you can schedule your application-level events to make optimal use of the low power states of both the core you're using, the other cores and on-board devices (e.g. FLASHs, ADCs, DACs, etc).
This is how iOS and Android try to have an effect by managing the applications use of timers and wakeups from external devices (interrupts) so as to maximise the 'sleep' time.
https://community.amd.com/community/gaming/blog/2017/11/27/a...