29 ms·
Race-to-idle is a good strategy in homogenous CPU setups. But chips like the M1 with its E and P cores (or ARMs BIG.little designs) significantly change the pl
by avianlyric 5y ago
Race-to-idle is a good strategy in homogenous CPU setups.
But chips like the M1 with its E and P cores (or ARMs BIG.little designs) significantly change the playing field, and race-to-idle makes less sense.
Two of the places you can look to understand why running on an E core for longer is better than running on a P core for shorter, is power consumption as frequency increases, and number of computational units in each core.
Power consumption in CPU generally increases exponentially with clock frequency. So double the frequency, if 4x the power (as a very rough guiding principle), so going slow and steady can be more power efficient.
Additionally E cores will have fewer computational units (ALUs and other basic computing blocks) compared to a P core. Running a core generally means you’re powering all of it computational units, regardless of if they’re actually doing any work (modern CPU have very good power gating, but there’s a limit). So running a core with less silicon is more efficient, because portion of powered silicon doing useful work is larger.
Put all of the above together, throw in sophisticated power gating, CPU clock scaling, various on die peripherals (like media engines, crypto engines etc) and all of a sudden, simple strategies like race-to-idle stop being a good approach.