Quels sont les noyaux d’un processeur ?
Les noyaux ou cœurs d’un processeur sont un concept que nous mentionnons continuellement lorsqu’il s’agit de parler de ses spécifications. D’autant plus que ces dernières années, nous avons vu une énorme augmentation de leur pertinence et comment les processeurs comprennent de plus en plus. Mais quel est vraiment le cœur d’un processeur et quelle est son importance ? C’ est quelque chose que nous allons clarifier dans cet article. On a commencé !
A voir aussi : Comparaison eMMC vs SSD : différences et impact sur les performances
Lire également : Plante piranha en pixel : décoration Mario Bros pour les fans de jeux vidéo
Plan de l'article
- Concurrence contre parallélisme : l’illusion de l’exécution parallèle
- Les noyaux apportent le parallélisme
- Multithreading : Donner deux cœurs logiques à chaque cœur physique du processeur
- Le nombre de noyaux est-il important aujourd’hui ? Le choix difficile entre mononucleus et performances multicœurs
- Dernier mots et conclusion sur le cœur d’un processeur
Concurrence contre parallélisme : l’illusion de l’exécution parallèle
Lorsque nous pensons au fonctionnement d’un PC au niveau de l’utilisateur, nous pensons clairement à la possibilité d’ exécuter plusieurs tâches à la fois, c’est-à-dire en parallèle. Cette idée est le cas depuis des décennies, lorsque nous n’avons trouvé qu’un seul cœur dans un processeur. La réalité est qu’ un processeur exécute chaque processus simultanément, et non parallèle.
Pour expliquer cela, nous devons savoir deux choses : premièrement, nous supposerons (pour simplifier) que chaque programme sur notre ordinateur sera un seul processus différent ; deuxièmement, nous nous souviendrons du fait que chaque processus exécute ses instructions séquentiellement, un par un, et non en parallèle. Clarifié cela, ce que nous devons également savoir est que sur un processeur, vous ne pouvez exécuter qu’un seul processus à la fois. Donc, il n’y a pas de forme de parallélisme dans l’exécution.
Précisément, ce qui permet cette exécution pseudoparallèle que nous remarquons est la concurrence, ce qui signifie essentiellement qu’ il y a plusieurs tâches en cours d’exécution dans des périodes de temps qui se chevauchent, de sorte que le temps est partagé entre plusieurs processus :
Plusieurs processus vont de l’avant d’une manière qui semble parallèle, car la division du temps sera à très petite échelle, mais en réalité à chaque moment concret, il n’y aura qu’un seul processus en cours d’exécution. Présentons cette idée graphiquement, imaginons un système qui exécute 3 processus, et donnant une vue plus ou moins idéale de ce qui serait une exécution parallèle par rapport à une exécution simultanée :
L’idée est claire : à chaque instant, il n’y aura qu’un seul processus en cours d’exécution, mais nous allons le diviser en morceaux si petits qu’aux yeux de l’utilisateur ils seront réellement en cours d’exécution.
Précisément, dans les systèmes d’exploitation, il y a toujours un planificateur de processus qui est responsable de diviser cette fois en fonction des besoins de l’utilisateur et de la machine, bien que ce soit quelque chose qui échappe à ce que nous voulons expliquer dans cet article.
Les noyaux apportent le parallélisme
Ce que nous venons de discuter s’applique à un CPU mononucleus, quelque chose que nous ne voyons pratiquement pas ordinateurs. Et le fait est que l’arrivée du multicore apporte avec elle une forme de véritable parallélisme. Mais avant de commenter cela, allons dans la question : qu’est-ce qu’exactement un noyau d’un processeur ?
Fondamentalement, l’idée du noyau est née de multiplier diverses parties destinées à la logique afin d’avoir plusieurs processeurs en un seul. Ainsi, dans un seul paquet, nous aurions ce qui se comporte comme plusieurs processeurs distincts, qui est combiné par des techniques de programmation parallèles pour atteindre un véritable parallélisme des programmes, ou simplement pour pouvoir exécuter plusieurs programmes différents à la fois. Exemple de schéma de base d’un processeur 4 cœurs, partage du cache L2. Naturellement, de nombreuses parties seront partagées, et comme nous vous le montrons dans le diagramme de base ci-dessus, nous pouvons partager certains niveaux de cache, par exemple.
Ceci a été implémenté pour la première fois par IBM avec son POWER4 en 1996, suivi par AMD et Intel en 2004 et 2005 respectivement, et les cœurs étaient tout à fait similaires au concept que nous avons proposé ici, regardant plus de « processeurs bloqués » que toute autre chose. Aujourd’hui, beaucoup de progrès ont été Ceci est tout un complexe Noyau Zen AMD réalisés dans la conception des processeurs, et la composition des parties de chaque noyau a beaucoup varié.
Par exemple, sur les derniers processeurs AMD Ryzen, nous pouvons trouver des cœurs dans des régions physiques distinctes au sein de la puce , appelées « chiplets », qui sont interconnectés par le bus Infinity Fabric.
Multithreading : Donner deux cœurs logiques à chaque cœur physique du processeur
Ce que beaucoup auront également vu, en plus du nombre de cœurs de processeur, est son « nombre de threads « , un nombre qui, s’il est deux fois le nombre de cœurs, indique que le processeur a HyperThreading (c’est un nom commercial d’Intel, dans AMD il sera appelé Multithreading simultané ou SMT) . Nous utiliserons le concept de multithreading (certains livres en espagnol le traduisent en « multihilamiento ») pour ne pas entrer de noms commerciaux.
Eh bien, ce que le multithreading implique est fondamentalement une amélioration par laquelle le CPU peut maintenir l’état de deux threads différents , pour basculer entre l’un et l’autre d’une manière beaucoup plus rapide que la normale.
Pour comprendre cette définition, vous devez également savoir que les threads d’exécution ou les threads sont une sorte de divisions d’un processus qui fonctionnent avec une indépendance similaire à celle qui ont deux processus différents, mais qui partagent des ressources. Par exemple, un traitement de texte peut avoir un thread pour recevoir l’entrée de l’utilisateur, un autre pour l’afficher formaté à l’écran, un autre pour l’enregistrement automatique… Avec le multithreading, un seul noyau physique du processeur héberge deux de ces threads (même s’ils proviennent de processus différents)pour accélérer l’exécution.
Et pourquoi l’exécution est-elle accélérée ? Avec les définitions que nous avons vues, il sera facile de comprendre que cette technologie ne donne pas un vrai parallélisme au sein du noyau, car il ne restera qu’un seul processus en cours d’exécution à la fois. Mais le fait est, cela rendra le basculement entre ces threads plusieurs ordres de grandeur plus rapide. Dramatisation avec 2 threads A et B : multithreading permet une meilleure utilisation du temps.
Maintenir deux contextes d’exécution dans un cœur et basculer entre eux extrêmement rapide signifie que les espaces « libres » sont beaucoup mieux utilisés dans l’exécution. Je veux dire, ces moments dans dont un noyau attendrait que le thread fasse quelque chose ou une opération d’entrée/sortie. Avec le multithreading, ce temps est utilisé pour exécuter l’autre thread.
Quelle amélioration des performances donne-t-elle le multithreading ?
Le nombre « magique » de multithreading, pourriez-vous dire, est de 30%. Et c’est que normalement l’amélioration moyenne des performances qui permet autour de cette valeur, n’est pas quelque chose qui est toujours maintenu beaucoup moins, mais on peut dire que l’amélioration sera d’environ 30%. Cela nous aide également à voir que les différences seront effectivement plus modestes en doublant le nombre de threads de processeur que celui des cœurs, de sorte que 6 cœurs et 6 threads se comportent généralement de la même manière ou meilleure que 4 noyaux et 8 fils.
Tout dépendra également de la façon dont le système d’exploitation le gère. Pensons à une implémentation primitive : le système d’exploitation verrait chaque noyau logique comme un CPU différent, et en les planifiant, vous pourriez faire l’erreur (par ignorance) de donner deux processus à un seul cœur physique, ce qui est de voir comme s’il s’agissait de 2 processeurs.
Heureusement, tous les systèmes sont très évolués et ne font pas de telles erreurs, et précisément dans le Gestionnaire des tâches Windows, vous pouvez voir comment vos cœurs physiques et logiques sont parfaitement identifiés.
Le nombre de noyaux est-il important aujourd’hui ? Le choix difficile entre mononucleus et performances multicœurs
En pratique, on ne peut pas affirmer clairement qu’un processeur est meilleur qu’un autre parce qu’il a un plus grand nombre de cœurs. En pensant intuitivement, est-il préférable d’avoir plusieurs cœurs lents ou un seul particulièrement rapide ? Ici entre en jeu la performance mononucléeuse de chaque processeur, qui est fondamentalement ce que vous pouvez obtenir en utilisant un seul de ses cœurs.
En outre, nous devons garder à l’esprit que toutes les applications ne sont pas destinées à utiliser tous les cœurs de l’ordinateur. De nombreux programmes de productivité ne le font pas, et la même chose utilisée pour se produire avec les jeux, bien que maintenant vous voyez enfin une tendance dans laquelle ils commencent à tirer beaucoup mieux parti de tous les cœurs disponibles. La zone typique où le nombre de cœurs est clé est le rendu CPU, Le Threadripper 3990X avec son 64 cœurs et 128 fils fonctionnant à pleine performance. Bestial. à la fois pour le montage vidéo, la conception 3D, etc., qui est presque toujours destiné à tirer parti de tous les cœurs disponibles.
Situation actuelle
Dans ce contexte, au cours des dernières années, il y a eu un grand débat sur les processeurs les plus appropriés, compte tenu du fait qu’AMD offrait un plus grand nombre de cœurs avec des performances plus faibles, alors qu’Intel a fait le contraire. Cela a été particulièrement vrai avec l’arrivée de le premier Ryzen en 2017, qui a apporté les 6 et 8 cœurs à des prix très bas alors qu’Intel n’était pas plus de 4.
Au cours des 4 années qui se sont écoulées depuis, nous avons vu comment AMD a considérablement amélioré ses rendements mononucléeus alors qu’ Intel était sur un pied d’égalité en nombre de cœurs. Par conséquent, parvenir à un choix de compromis entre mononucleus et performances multicœurs aujourd’hui n’est pas exactement un problème, et ce qui est vraiment important, c’est le nombre de cœurs à choisir.
La recommandation générale qu’il y a à cet égard est qu’il est préférable de parier sur un processeur d’ au moins 6 cœurs et 12 threads si nous allons jouer, pour mieux profiter du potentiel des derniers titres qui sortent, d’autant plus que ces processeurs sont dans un segment de prix qu’un il y a quelques années correspondrait à 4 noyaux et 4 fils. Il est déjà recommandé de passer du 8 à ci-dessus pour les utilisations plus intensives du processeur, et certains conseillent également pour l’équipement de jeu sur un budget lâche.
Dernier mots et conclusion sur le cœur d’un processeur
Le cœur d’un processeur est sans aucun doute l’un des concepts les plus importants à considérer aujourd’hui. Ceux-ci nous permettent d’avoir quelque chose de similaire à « plusieurs processeurs en un », en multipliant certaines parties logiques du processeur, afin d’obtenir un parallélisme d’exécution impossible dans un système mononucléeux. Les avantages de performance que cela permet ont été démontrés au fil des ans, et aujourd’hui un processeur mononucléeux est inconcevable à l’exception d’une exception spécifique de très faible niveau.
En outre, chaque noyau physique peut être divisé en deux cœurs logiques grâce à des technologies multithreading telles que Intel HyperThreading ou AMD Simultané Multithreading. Qu’ est-ce ces atteindre est un échange extrêmement rapide entre deux threads, car ils enregistrent l’état de chacun d’eux, de sorte que tandis que l’un est inactif, il passe très rapidement à l’autre, obtenant une amélioration significative des performances.
Nous vous recommandons de lire certains de nos articles matériels :
- Quel est l’état des processus de nos équipes
- Quels sont les threads d’un processeur
- Qu’ est-ce que le cache L1, L2 et L3, et comment il fonctionne
- AMD Infinity Cache, la technologie qui accélère les cartes graphiques RX 6000
Et si vous êtes intéressé à savoir combien de cœurs vous devez avoir aujourd’hui, la référence pour les équipes « normales » sont sans aucun doute les 4 cœurs, mais pour les équipes de jeu, les 6 cœurs peuvent déjà être plus qu’utilisables, et dans certaines applications de productivité ou encore plus de tâches de rendu. Bien sûr, deux questions doivent toujours être gardées à l’esprit :
- Tous les programmes ne profiteront pas d’avoir plusieurs cœurs assez bien, ou directement ne le fera pas.
- La performance de chaque cœur est très importante, de sorte qu’un processeur 4 cœurs avec de bonnes performances mononucleus pourrait être mieux dans tous les cas qu’un processeur 6 ou 8 cœurs avec de mauvaises performances mononucleus. Heureusement, les derniers processeurs Intel et AMD sont très bien positionnés à cet égard.
Nous espérons que cet article vous a aidé à clarifier le concept de noyau d’un processeur. N’hésitez pas à nous laisser toutes questions ou suggestions dans les commentaires.