It must be recognized that heterogeneous multicore is not a new concept, far from it, because in the world of mobile devices it has been around for some time, and the name will surely be familiar to you. big little ARM or Intel Lakefield architecture, which also uses it. Either way, in this article, we’re going to dig deeper into the concept so that you can understand all of its ins and outs in the easiest way possible.
What is heterogeneous multicore?
We have already spoken on other occasions of this arrangement in the internal design of processors, which is that all cores are not the same but that there are different clusters (groups, to sum up) of different cores, i.e. This is precisely why this is called heterogeneous multicore. To put this in perspective, imagine for example an Intel Core i7-8700K processor, which has six physical cores; in this the six hearts are exactly the same, they work in harmony at the same speed and perform the assigned tasks equally, dividing the work among all.
The difference with a “normal” processor like the ones we have been using in PCs so far, a heterogeneous multicore processor, is that in the latter not all cores are the same, but rather has multiple groups of cores which can be completely different
So, for example, you can see in the image below a MediaTek Helio X20 processor which has a very low power Cortex-53 ULP quad-core cluster, another more powerful but very efficient Cortex-A53 quad-core cluster and finally a third cluster with two high performance Cortex-A72 cores.
This is a heterogeneous multicore processor, and it’s called that literally because it has multiple cores (multicore) that are different (heterogeneous) rather than being a homogeneous compute where all the cores are the same. As we said before, each of these clusters is different physically and also empirically in terms of speed, multiplier and even voltage, and can even behave as if they were different processors.
Why is this design more effective?
An example of heterogeneous computing is in ARM’s big.LITTLE architecture, where heterogeneous multicore systems are used where they all share the same ISA i.e. all cores can run the same set. instructions and perform any task assigned to them. . This means that when the system is idle, the processor can turn off the more powerful cores to save power and thus reduce power consumption and temperature, greatly improving efficiency.
At the moment when more power is required from the CPU, it activates the next cluster of cores so that the performance obtained is as expected, and if necessary, it can activate the high performance cores to deliver their full potential. This system is very efficient because when the processor is needed it can deliver all its power, but as each cluster can behave like an independent processor in itself, it is capable of deactivate central groups when these are not needed, saving a lot of energy.
Many of you will surely say that in a homogeneous-core processor, the cores could also be disabled, but the “secret” of heterogeneous processors is to have low-power cores, sufficient for basic tasks that do not require a lot of work. power and consume less than the general purpose cores that have equipped processors so far; In other words, by having specific cores with low consumption, a much better yield is obtained.
Another thing that makes heterogeneous computing possible is that not all cores have to share the same ISA (instruction set), so they could, for example, incorporate specific cores for AI that are only operational when they must perform specific tasks, being disabled. the rest of the time. This would allow processors with a huge number of cores, as is the case in graphics cards, and each type of core (or cluster thereof) to take care of the specific operations for which it was designed, improving still efficiency with him.
Heterogeneous multicore is not without its problems
There are two fairly specific “problems” with heterogeneous multicore processors on a platform like the PC. The first of these concerns the Overclock, since if each cluster of cores works at a different speed and with a different multiplier, we will not be able to overclock the whole processor as such, but simply a specific group of cores (cluster), even if it is true that ‘Intel and AMD remain They have not disclosed the technical data on this matter. In any case, it seems logical to think that as much as possible it will be possible to overclock only certain clusters of cores and not all because they are not homogeneous.
The second problem with heterogeneous architectures is the software support, because after all, the operating system must be able to support these kind of implementations in order to allocate the workload to the appropriate cores. In the case of a linux kernel There are modules responsible for managing processor clock frequencies or turning cores on and off respectively, but the problem with these modules is that they work independently and can cause conflicts between them, reducing efficiency in some cases or performance in others.
Obviously, this type of architecture is destined to become popular sooner or later (remember Intel Lakefield and AMD is already “playing” with it), whereas the most used operating system is Microsoft Windows , we will have to wait for Microsoft to “put the batteries” to adopt this type of architecture and see how it ultimately behaves.