mmm, good question...
The cores listed for X27 are not all equal, as you might expect in an Intel i7 or other desktop processor...
MediaTek says they have 3 clusters of cores:
linkCPU Cluster 1: ARM-A72 @ 2.6GHz
CPU Cluster 2: ARM-A53 @ 2.0GHz
CPU Cluster 3: ARM-A53 @ 1.6GHz
Cores: Deca (10)
CPU Bit: 64-bit
Heterogeneous Multi-Processing: Yes
So so X27 contains some A72s, some A53s clocked high and low.
The idea is that the cores can be switched on/off as demand requires, and as the OS thinks benefit to be had. Obviously heat and energy usage is the cost for having all cores running.
This is the architecture of the X27:
[img]https://cdn.neow.in/news/images/uploaded/2016/12/1480684296_x20_story.jpg\" border=\"0\" class=\"linked-image\" /]
I think that means the slowest A53s are running all the time, and the faster A53s and fastest A72s only wake up when the OS wants to use them to run a thread.
I application design, the benefit of multi core CPUs are only actualized if the application is specifically designed to make use of more than 1 core.
Things like blender has this design to make it scale better and run faster on more expensive hardware.
Besides the speed of the cores, there is a difference in capability. The lower ones have less cache, shorter pipelines, lack out of order execution (and I think can only interpret a lesser set of instructions).
See
here.
Early versions of Android could not make use of all the cores at once - they had to switch between a set of cores...
The Heterogeneous Multi-Processing means that the OS can use all the cores at the same time, if it chooses. That is good.
Earlier SOCs could only use one cluster at a time.
Even after Heterogeneous Multi-Processing became a think, I think Samsung had an issue in the S4 or something where the OS could not support it but the hardware could...
Here are some good diagrams to illustrate it.So - ymmv wrt using all cores. Even if your application supports it, and the OS allows it, you will not get 10x performance over running on 1 core... not all the cores are equal.
Another thing to ponder - will the Linux process scheduler in the kernel
allow Heterogeneous Multi-Processing?
Android these days obviously supports this...
This article from 2012 seems to suggest no such scheduler existed at the the time:
https://lwn.net/Articles/481055/This question from 2014 seems to suggest that it was available in custom kernels:
https://stackoverflow.com/questions/2549821...d-in-linux-kernMatching that referenced kernel source file to the current one, shows no mention of "HMP":
https://github.com/torvalds/linux/blob/mast...el/sched/core.cIt may have been refactored out of that source file in the meantime, or it might mean - you need a custom kernel to support HMP??
Also, I wonder if thermal throttling may force the CPU to only use slower cores...More info here:
http://www.sisoftware.eu/2015/06/22/arm-bi...e-lucky-number/