I keep coming back to this great bit of analysis from Anand when he was reviewing the iPhone 5s:
"In such a thermally constrained environment, going quad-core only makes sense if you can properly power gate/turbo up when some cores are idle. I have yet to see any mobile SoC vendor (with the exception of Intel with Bay Trail) do this properly, so until we hit that point the optimal target is likely two cores. You only need to look back at the evolution of the PC to come to the same conclusion. Before the arrival of Nehalem and Lynnfield, you always had to make a tradeoff between fewer faster cores and more of them. Gaming systems (and most users) tended to opt for the former, while those doing heavy multitasking went with the latter. Once we got architectures with good turbo, the 2 vs 4 discussion became one of cost and nothing more. I expect weÃ(TM)ll follow the same path in mobile.
Then thereÃ(TM)s the frequency discussion. Brian and I have long been hinting at the sort of ridiculous frequency/voltage combinations mobile SoC vendors have been shipping at for nothing more than marketing purposes. I remember ARM telling me the ideal target for a Cortex A15 core in a smartphone was 1.2GHz. SamsungÃ(TM)s Exynos 5410 stuck four Cortex A15s in a phone with a max clock of 1.6GHz. The 5420 increases that to 1.7GHz. The problem with frequency scaling alone is that it typically comes at the price of higher voltage. ThereÃ(TM)s a quadratic relationship between voltage and power consumption, so itÃ(TM)s quite possibly one of the worst ways to get more performance. Brian even tweeted an image showing the frequency/voltage curve for a high-end mobile SoC. Note the huge increase in voltage required to deliver what amounts to another 100MHz in frequency."
In light of this sort of thinking, Apple's decisions continue to make a lot of sense. They can use less power, generate less heat, and still come out on top of most real-world tests and benchmarks. Anandtech's preliminary review of the iPhone 6es shows the A8 being far ahead on most relevant benchmarks, but falling behind on the physics simulation. Realistically, most people programming for mobile don't actually have problems that parallelize very well. My email client or podcasting app might need two threads or processes going on at once (one for foreground processing and another for background downloads, perhaps?) but it's unlikely that it'll need more. Physics simulations parallelize nicely by comparison, and the Android phones with more cores clearly stomp the 2-core A8. But how often do I run that sort of simulation on my phone? Nearly never, even with today's games.