

The processor in my smartphone has more CPU cores than my desktop PC! It is true, but it doesn’t sound right. How is it that this little handheld device is sporting eight-cores but my PC only has four? Does my smartphone perform better than my PC? Does my smartphone need 8 cores, or even 10? These are good questions and according to a Forbes article written by Patrick Moorhead, the well known technology commentator, 8 and 10 CPU cores in smartphones are a bad idea, and he uses the car as an example.

His basic idea is this: a car has an engine, like a smartphone has a processor. The number of cylinders in the engine are analogous to the number cores in the processor. In the past car makers used engines with 8 cylinders, but more recently fuel economy has become increasingly important, so many engines now use four cylinders.

When it comes to Intel, they simply cannot have more than 4 x86 cores if they want to remain power efficient.

Moorhead then goes on to point out that not all four cylinder engines are equal, and neither are all four core processors. He compares the engine in the Toyota Yaris and the engine in the Audi TTS. “The Audi TTS 4 cylinder engine manages an impressive 310 horsepower in a 2 liter engine, meaning that Audi is able to extract nearly three times the performance out of their engine with only 30% more engine volume.” In Moorhead’s mind the Audi engine is superior since the Yaris engine “has an average economy of 34 MPG, which is more than 20% better than the TTS, but at the sacrifice of being more than 50% slower.”

Before we move on, it is worth noting that the Yaris will save its owner more than $1200 in fuel costs over a three year period, in Europe that saving is even higher. So while the Audi engine does indeed manage to get more performance with only 30% more engine volume, many people will find the extra $1200 in fuel costs unacceptable. And this is where we start to talk about CPU cores.

big.LITTLE

The fundamental thing that Moorhead has missed is that the CPU cores in 8 or 10 core processors aren’t all the same size. In a car, all the cylinders have the same cubic capacity. But in an 8 core CPU they don’t. This completely changes the balance of things. If the debate was about the difference between two processors with the same number of cores, where each core per processor had the same performance and energy efficiency characteristics, then the analogy between the Audi and Toyota might be valid. But it isn’t like that, Moorhead is trying to compare oranges with pears.

This type of arrangement is what is known as heterogeneous multi-processing.

8 core processors like the Qualcomm 615, the Qualcomm 810, and the Samsung Exynos 7420 all use two different type of cores, four of one type and four of another. Four of the cores are high performance and four of the cores have better efficiency. What happens is that the underlying OS, e.g. Android picks the best processor core for the job. If it is a background tasks that is just checking your email, there is no need to use the high performance core. Network connections have lots of latency and there will be lots of waiting around and little actual processing. However if you start playing a game then a high performance core is needed.

This type of arrangement is what is known as heterogeneous multi-processing, where not every core is the same. To make it work the scheduler in the OS needs to understand that the cores have different characteristics and it assigns tasks to the cores according to those characteristics. ARM’s heterogeneous model is called big.LITTLE. In an 8 core big.LITTLE setup the cores are arranged in two clusters. One cluster has four Cortex-A57 or Cortex-A72 cores, powerful cores with lots of processing ability. And one cluster has four Cortex-A53 cores, still a 64-bit processor, still very capable, but more power efficient and often clocked at a lower clock speed. Chip makers don’t need to stick with 4+4, they can in fact pick lots of variations, like 2+4 (dual-core Cortex-A57 and quad-core A53) as with the Snapdragon 808.

Kitchen

So let me propose an alternative analogy, one that better reflects the reality of heterogeneous multi-processing, the humble kitchen knife. In our kitchen we have a block of wood with several different knives in it. The knives are different sizes, some are longer, some are shorter, some are thinner, some are wider, some have a serrated edge, and so on. Each knife has an optimal use. The bread knife is great for cutting bread, the boning knife is ideal for removing meat from the bone, the Chef’s knife is the best for chopping, and so on. It is possible to use the bread knife to chop, and it is also possible to peel a carrot using the Chef’s knife, since it is still a knife with a nice sharp edge, however it isn’t ideal, and probably not recommended.

More cores equals more choice.

In other words, I pick the best knife for the job, I am not limited to just one type of knife. I have options, I have choices. Think of it this way, more cores equals more choice. The scheduler can now pick the right core for the right job. It isn’t about overall performance, it isn’t like the desktop world, just because a mobile processor has 8 cores it doesn’t mean it has a higher performance than a processor with 4 cores. However what it does mean is that the OS has the choice to use the right core for the right job.

As I have written here before, energy efficiency is actually the goal of these increasingly large multi-core processors. And as Robert Triggs wrote yesterday in his analysis of the 10 core MediaTek X20, “It may seem a little counter intuitive, but 10 cores doesn’t automatically improve performance. However, it does offer a lot more choice about what you can do with your workload.”

Talking of the X20, MediaTek states that this type of design lends itself to a 30 percent improvement in power consumption compared with a similar 2-cluster design. The idea is to scale even more effectively from small low power cores, through a quad-core mid-stage and right on up to a dual-core high performance configuration. If Patrick Moorhead wants to use analogies from the auto industry, here is another one, the gearbox. The more gears you have, the finer the control over the speed, the torque and the RPMs. Sure you can drive everywhere in a high-gear, but is that the most efficient? No.

If you look at the power consumption table from MediaTek you will see that there are significant power savings for simple tasks like loading a web page, watching a video and using Facebook.

Moorhead claims that, “the reality is that in a smartphone you don’t really use more than 3 large cores in any usage given scenario.” And he may be right, the question is which 3 cores is the OS going to use? If all your cores are the same then the OS has no choice. If you have a dual-cluster or tri-cluster big.LITTLE arrangement then the most appropriate cores can be used. So even if the sweet spot for a smartphone is four cores, having 8 or 10 cores available means that the four cores which are used are the cores which give you the highest performance and the greatest energy efficiency.

What we are seeing is chip makers experimenting with the most optimal balance of performance vs power vs cores, and at the moment there seems to be benefits to adding more cores.

If you look at the power consumption table from MediaTek you will see that there are significant power savings for simple tasks like loading a web page, watching a video, and using Facebook. All common tasks that won’t fully utilize all 10 cores of the processor, but having 10 cores available means that scheduler can fire-up the best cores for the tasks.

Marketing

Until now we have talked tech, why is one design better than another? What does heterogeneous multi-processing bring to the mix? And so on. But the real problem probably isn’t the tech, it is the marketing. In a previous article for Forbes, Patrick bemoaned the way in which 8 core processors are being marketed, and to in many ways I agree with him. The phrase “octa-core” is being used in the sense that 8 cores are better than 4, in terms of performance. But the real message is that 8 big.LITTLE cores are better than 4, in terms of power efficiency. This seems to have been lost.

Intel has been playing catch-up in the mobile market for years, and it has arrived at the point where it needs to give away its processors practically for free.

One thing that Moorhead implies, which I don’t think is correct, is that this marketing could leave SoC manufacturers and smartphone makers open to getting sued for deceptive or misleading claims. I don’t think that boat will float. These SoCs do have 8 cores, and all 8 cores are capable of running simultaneously. There is nothing misleading about the description “octa-core.”

So why the 8 and 10 core craze? Besides the clear technical advantages in terms of power efficiency, these SoC makers are in competition with each other, and with Intel. Each company needs to differentiate itself from its competition. The MediaTek X20 is certainly an innovative 3 cluster big.LITTLE design, and it is taking mobile heterogeneous multi-processing to the next level.

Intel has been playing catch-up in the mobile market for years, and it has arrived at the point where it needs to give away its processors practically for free to smartphone makers so that they will pick its processors, rather than those based on ARM’s designs. However, Intel hasn’t altered its mindset and it still thinks in terms of desktops, laptops and servers. Intel has no heterogeneous multi-processing designs for mobile and it is basically relying on its manufacturing processes to help it bring down power usage. As Patrick puts it, “When it comes to Intel, they simply cannot have more than 4 x86 cores if they want to remain power efficient and on a reasonable size die.” The other processor manufacturers are trying to take advantage of that.

Wrap up

So in conclusion, the key factor to understand about 8 and 10 core processors is that all the cores aren’t the same. The clusters of cores have different performance and power characteristics. With clever scheduling the mobile OS is able to use the best core for the best job. Remember, more cores equals more choice. More choice means better power efficiency, but not necessarily more performance.