Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Wolfpup

macrumors 68030
Original poster
Sep 7, 2006
2,948
117
I’m just curious… The A10 Is Apple’s first design with two types of CPUs, it the smaller CPUs are used only for power savings, execution runs on either the big CPUs or the little cpus, with the other two shut down.

But starting with either the a11 or the a12, it’s got 2 big cpus and 4 little ones. I would assume two of the four little ones are held in reserve, like on the A10, execution is on either the big or little cpus.

regardless, that leaves at least two little cpus that can be running at the same time as the big cpus.

So how does iOS (or macOS) Know how to schedule stuff to either a little CPU or big CPU? Is it able to just see how much power a thread is using and move it over to a big CPU if it needs it? I’ve never seen a tech article about how it actually does this. Obviously this would apply to android also, even if the CPUs android devices are stuck using a much lower end, you’ve still got the same situation.

I suppose if it can’t dynamically move threads (which would take time, at best) it could have some background system tasks marked to run on the little cpus if they don’t need as much power or can take longer to execute

Anyone know how it works?

(Somewhat similar situation on windows, where newer versions of Windows could schedule for AMD’d last major cpu design prior to Zen, which had 1 floating point unit for every two integer units, and if windows task scheduler didn’t somehow know about that, it could schedule floating point work on what looks like 2 cpus but is really 1, while leaving a different cpu unused…but somehow newer versions of Windows are able to know about that and schedule stuff right.)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.