What exactly happens to a multi-core CPU when a device goes into deep sleep? Do all cores go to sleep or do the cores keep running at the lowest frequency?
2 Answers
For a layman's answer, while in sleep or deep sleep mode, the MC is instructed to turn off all non essential subsystem like the sensors in your device and run only the critical subroutines in a single core at the lowest frequency possible.
If you want the technical answer go here
In a typical modern mobile CPU during deep sleep, all cores will be put to sleep (having their clocks suspended) and remain that way until an interrupt occurs which will wake the CPU up again. A typical Android device might spend the majority of its screen-off time in this state.
This wakeup interrupt might come:
from an on-chip Wakeup Controller, or an RTC. Before going to sleep, the kernel would program the time for the wakeup interrupt to fire, based on the next alarm time.
from the 2G/3G/LTE modem to indicate network activity like an incoming call
from user pressing a button.
Modern CPUs are designed to be able to wake from sleep extremely quickly.
The 2G/3G/LTE modem can still remain awake to receive network events and wake the CPU up. Modems are often combined into the same package as the CPU, but are quite logically separate. Modems will have their own sleep / hibernate modes, but the timing of when these are entered will not be as closely tied to user events such as screen on/off