Qu'est-ce que le multicœur hétérogène et comment il améliore l'efficacité

Multicœur hétérogène

Ces derniers temps, l'informatique hétérogène est sur les lèvres de tous les passionnés de matériel informatique car elle est très prometteuse pour l'amélioration de l'efficacité des PC modernes. Dans cet article, nous allons parler d'un terme connexe mais beaucoup plus spécifique, le multicœur hétérogène , un paradigme de plus en plus utilisé par Processeur constructeurs et que l'on verra sûrement très souvent dans les futures générations de CPU.

Il faut reconnaître que le multicœur hétérogène n'est pas un nouveau concept, loin de là, car dans le monde des appareils mobiles, il existe depuis un certain temps, et vous serez sûrement familier avec le nom big.LITTLE de BRAS au sein de l’ Intel L'architecture Lakefield, dont il l'utilise également. Dans tous les cas, dans cet article, nous allons approfondir le concept afin que vous puissiez comprendre tous ses tenants et aboutissants de la manière la plus simple possible.

Qu'est-ce que le multicœur hétérogène ?

Matrice Intel 8700K

Nous avons déjà parlé à d'autres occasions de cette disposition dans la conception interne des processeurs, qui consiste en ce que tous les cœurs ne sont pas les mêmes mais qu'il existe différents clusters (groupes, pour résumer) de cœurs différents, c'est précisément pourquoi c'est ce qu'on appelle le multicœur hétérogène. Pour mettre cela en perspective, imaginez par exemple un processeur Intel Core i7-8700K, qui possède six cœurs physiques ; en cela, les six cœurs sont exactement les mêmes, ils travaillent en harmonie à la même vitesse et effectuent les tâches assignées de manière égale, en divisant le travail entre tous.

La différence par rapport à un processeur "normal" comme ceux que nous utilisions dans les PC jusqu'à présent, un processeur avec un multicœur hétérogène, est que dans ce dernier tous les cœurs ne sont pas identiques, mais il a plusieurs groupes de cœurs qui peuvent être complètement différent en termes de taille physique (et avec elle, en termes de nombre de transistors), de fonctionnement vitesse et multiplicateur , mais aussi (comme nous l'expliquerons par la suite) en termes d'équilibrage de charge.

Ainsi, par exemple, vous pouvez voir dans l'image ci-dessous un MediaTek Processeur Helio X20 qui possède un cluster quad-core Cortex-53 ULP à très faible consommation, un autre cluster quad-core Cortex-A53 plus puissant mais très efficace et enfin un troisième cluster avec deux cœurs Cortex-A72 hautes performances.

Noyau Mediatek Helio Deca

Il s'agit d'un processeur multicœur hétérogène, et on l'appelle ainsi littéralement parce qu'il a plusieurs cœurs (multicœur) qui sont différents (hétérogènes) plutôt que d'être un calcul homogène où tous les cœurs sont les mêmes. Comme nous l'avons dit précédemment, chacun de ces clusters est différent physiquement et aussi empiriquement en termes de vitesse, de multiplicateur et même de tension, et peut même se comporter comme s'il s'agissait de processeurs différents .

Pourquoi cette conception est-elle plus efficace ?

diagramme big.LITTLE

Un exemple d'informatique hétérogène se trouve dans l'architecture big.LITTLE d'ARM, où des systèmes multicœurs hétérogènes sont utilisés où ils partagent tous le même ISA, c'est-à-dire que tous les cœurs peuvent exécuter le même ensemble d'instructions et effectuer toute tâche qui leur est confiée. . Cela signifie que lorsque le système est inactif, le processeur peut désactiver les cœurs les plus puissants pour économiser de l'énergie et ainsi réduire la consommation et la température, améliorant considérablement l'efficacité.

Au moment où plus de puissance est requise de la part du CPU, il active le prochain cluster de cœurs afin que les performances obtenues soient celles attendues, et si nécessaire, il peut activer les cœurs hautes performances pour délivrer tout leur potentiel. Ce système est très efficace car lorsque le processeur est nécessaire il peut délivrer toute sa puissance, mais comme chaque cluster peut se comporter comme un processeur indépendant en lui-même, il est capable de désactiver des groupes de cœurs quand ils ne sont pas nécessaires. économisant beaucoup d'énergie.

Vous serez sûrement nombreux à dire que dans un processeur à cœurs homogènes, les cœurs pourraient également être désactivés, mais le « secret » des processeurs hétérogènes est d'avoir des cœurs à faible consommation, suffisants pour des tâches basiques qui ne nécessitent pas beaucoup d'énergie et qui consommeraient moins que les cœurs à usage général qui ont équipé les processeurs jusqu'à présent ; En d'autres termes, en ayant des noyaux spécifiques à faible consommation, on obtient un bien meilleur rendement.

Une autre chose qui rend possible l'informatique hétérogène est que tous les cœurs ne doivent pas partager le même ISA (jeu d'instructions), de sorte qu'ils pourraient, par exemple, incorporer des cœurs spécifiques pour l'IA qui n'entrent en service que lorsqu'ils doivent effectuer des tâches spécifiques, étant désactivés. le reste du temps. Cela permettrait aux processeurs avec un nombre de cœurs énorme, comme c'est le cas dans les cartes graphiques, et que chaque type de cœur (ou cluster de ceux-ci) prenne en charge les opérations spécifiques pour lesquelles il a été conçu, améliorant encore l'efficacité avec lui.

Le multicœur hétérogène n'est pas sans problèmes

Processeurs Pila

Il existe deux « problèmes » assez spécifiques avec les processeurs multicœurs hétérogènes sur une plate-forme comme le PC. Le premier a à voir avec Overclocking , puisque si chaque cluster de cœurs fonctionne à une vitesse et avec un multiplicateur différent, on ne pourra pas overclocker l'ensemble du processeur en tant que tel, mais simplement un groupe spécifique de cœurs (cluster) Bien qu'il soit vrai qu'Intel et AMD n'ont pas encore révélé les données techniques à ce sujet. Dans tous les cas, il semble logique de penser qu'au maximum il ne sera possible d'overclocker que certains clusters de cœurs et pas tous car ils ne sont pas homogènes.

Le deuxième problème avec les architectures hétérogènes est support logiciel , car après tout, le système d'exploitation doit être capable de prendre en charge ce type d'implémentation afin d'affecter la charge de travail aux cœurs appropriés. Dans le cas d'un Linux/Unix noyau, il existe des modules chargés de gérer les fréquences d'horloge du processeur ou d'activer et de désactiver respectivement les cœurs, mais le problème avec ces modules est qu'ils fonctionnent indépendamment et peuvent générer des conflits entre eux, réduisant l'efficacité dans certains cas ou les performances dans d'autres.

Evidemment, ce type d'architecture est voué à devenir populaire tôt ou tard (rappelons-nous Intel Lakefield et qu'AMD « joue » aussi avec), donc compte tenu du fait que le système d'exploitation le plus utilisé est Microsoft Windows, il faudra attendre que Microsoft « mette les batteries » pour adopter ce type d'architecture et voir comment elle se comporte finalement.