Demystifying multi-core processors

LeoRex

Retired Moderator
Nov 21, 2012
6,223
0
0
I've seen quite a few questions recently about the sudden increase in the number of cores we are seeing in several Android phones.... most notably the HTC One M9 and the Samsung Galaxy S6. I wanted to write up this post in an attempt to help burn through the fog and explain the purpose of these new processors.

Think of your phone like it's a car and the SoC is the engine. Some cars have really powerful engines, others don't.... but if you are sitting there at a stop light, idling, well, a Ford Fiesta and a Lamborghini Huracan pretty much need the same amount of power to keep all the stuff inside the car going... the radio, HVAC systems, etc. The problem is that the Lambo got that massive lump of an engine that it needs to keep running and that beast sucks down a ton of gas just sitting there doing nothing. Even just putting around town, that V10 gobbles up the dino juice at a staggering rate.

But what if you could design an engine that would use the same amount of fuel as a Fiesta, but when you stomped on the gas, you get the power of the Huracan? This is exactly goal of multi-core processors (and hybrid cars BTW). Instead of one massive, powerful processor core doing all the work and sucking down all that power, stack a bunch of smaller, less powerful but more efficient cores under the hood. At full blast, all those cores can work in unison to provide the same amount of processing power as the large, single core, but when things drop down to idle, those smaller cores will (well, SHOULD) use less power.... some phones may also bring uneeded cores offline, saving even more power.

Most of the most common Android phones out there now are powered by quad core processors (and those are most often Qualcomm's Snapdragon line) that comprise of four identical cores. My Nexus 6 has a quad core Snapdragon 805 processor made up of four ARM Krait 450 cores. But we are starting to see a new generation of SoCs that have even more cores... six, eight or even ten.... and they are laid out quite differently.

Let's look at the Samsung Exynos 7420 SoC that is in the Galaxy S6. HOLY SCHNIKIES!!!!!!!!! EIGHT CORES!!!!???? ... Yes, eight, using what some refer to as a big.LITTLE configuration... inside the 7420 you will find four, high-power ARM Cortex A57 cores and four low-power and effcient Cortex A53 cores. As you go about your day, the S6's software tries to figure out the best way to work... does it need the processing power of the A57 cores? Or can it get by with the more frugal A53s? It is a pretty complicated dance, balancing power usage, system performance and (just as important) user expirience. People like their phones to run smoothly and if they don't get the dance steps right, things get a little herky-jerky and users get annoyed and complain about lag and jitter when launching apps or switching between them.

Why the sudden increase? Well, it all boils down to range. When I'm just sitting here, checking my email, my Nexus 6 doesn't need any more processing grunt than that my three year old Galaxy Stellar that I've given my daughter to play with.... but when it comes to playing newer, ever-more-complicated games, watching high definition video or running a recent picture through Snapseed... and all the while doing it quickly and without so much as a hiccup... We keep wanting more (speed) for less (power).

So this move to increasingly more cores has little to do with increasing processing performance and is ALL about saving power while keeping up with demand. Now, there is a lot more going on behind the scenes here.... but I hope this helps explains things in fairly general terms for those that were curious.
 
Last edited:
So this move to increasingly more cores has little to do with increasing processing performance and is ALL about saving power while keeping up with demand. Now, there is a lot more going on behind the scenes here.... but I hope this helps explains things in fairly general terms for those that were curious.

It's more about business and marketing. More cores and more pixels sounds better. Very few customers understand real performance and power efficiency. Dual-core 1.4GHz Apple A7 SoC is as fast as Quad-core 2.3GHz Snapdragon 800, but quad-core sounds better, octa-core even better. In reality not many apps are optimized for more than 2 cores, most apps run on 1 core only. Can we see pixels on a 5" Full-HD display? No. But QHD display sounds better. Do we really need curved display edges? No. But this useless feature is a good selling point. Manufacturers need to sell more devices and the specs must look "cool".
 
Love the post LeoRex, especially the way of simplifying the way the CPU works with the hybrid car example :)

I think that you often may see the extra CPU cores being used as a marketing gimmick, but also in some cases it may be quite appropriate to offer those extra cores, in some big.LITTLE configurations you may find that when the big cores are powered up the LITTLE cores are powered down and vice versa, so effectively this could make an 8 core device work like it is only a quad core with both better performance and power efficiency.

In today's Android devices I don't think that single core makes sense any longer as most modern Android apps require multiple threads in order to provide a smooth experience as the app has a UI thread that obviously handles most of the stuff you see on screen but then as certain parts of the UI may need some heavy tasks to be performed in order to generate the info that you see on screen that would be better off being done in a secondary thread to reduce the chances of stuttering or UI pauses which could last several seconds and then cause the dreaded "this app is not responding" error, although it may still be working, it's just running those calculations on the UI thread so the UI thread just can't do anything else whilst that heavy task is being processed, and obviously there is the chance that there may be other services running from this app which are doing other things entirely in the background and they will need a separate thread of their own.
I believe that if these threads are spread out across multiple cores then that may reduce the overall impact on the device's performance.

I like the fact that phones now offer 4 core configurations (or 8 cores when used to increase battery life), I'm not sure that 8 cores are required just yet for consumer devices, and most software wouldn't make use of the extra cores anyway at the moment, but the idea of using a 4+4 config for performance & power efficiency all in one device is something that I am interested in.
 
Love the post LeoRex, especially the way of simplifying the way the CPU works with the hybrid car example :)

Imagine you get a new car with 4 summer tires on and 4 winter tires in the trunk, marketed as new and improved 8-wheel car. Will you believe that statement? Same situation with 8-core processors that can use only 4 cores at a time. In fact they make a 4-core system, not 8.
 
Imagine you get a new car with 4 summer tires on and 4 winter tires in the trunk, marketed as new and improved 8-wheel car. Will you believe that statement? Same situation with 8-core processors that can use only 4 cores at a time. In fact they make a 4-core system, not 8.

I wasn't trying to suggest that it would be an 8 core system.

Technically there are 8 cores but since only 4 core's are on (in some big.LITTLE configurations, not all I might add) I think 4+4 is a better way to describe it (4 on + 4 off).
 

Members online

Forum statistics

Threads
954,522
Messages
6,961,910
Members
3,163,055
Latest member
TyeFighter