Anonim

Lorsque les ordinateurs personnels ont été inventés pour la première fois, leur unité centrale (CPU) était autonome et ne comportait qu'un seul cœur de processeur. Le processeur lui-même était le noyau; l'idée d'avoir un processeur multi-core était encore inconnue. Aujourd'hui, il n'est pas du tout rare de voir des ordinateurs, des téléphones et d'autres périphériques dotés de plusieurs cœurs - en fait, presque tous les ordinateurs disponibles dans le commerce, quels qu'ils soient, possèdent plusieurs cœurs. Ces cœurs résident dans la même unité, le même processeur ou l'unité centrale.

Avoir plusieurs cœurs est un gros avantage. Avec un seul noyau, un ordinateur ne peut travailler que sur une tâche à la fois, il doit donc terminer une tâche avant de passer à une autre. Cependant, avec plus de cœurs, un ordinateur peut exécuter plusieurs tâches à la fois, ce qui est particulièrement utile pour ceux qui effectuent beaucoup de tâches multiples.

Avant de plonger dans le fonctionnement exact des processeurs multicœurs, il est important de parler un peu de l'historique de la technologie de traitement, après quoi nous discuterons de ce que font les processeurs multicœurs.

Un peu d'histoire

Avant la construction de processeurs dotés de plusieurs cœurs, des particuliers et des sociétés telles qu'Intel et AMD avaient tenté de créer des ordinateurs dotés de plusieurs processeurs. Cela signifiait qu'une carte mère avec plus d'un socket de processeur était nécessaire. Non seulement cela coûtait-il plus cher en raison du matériel physique nécessaire pour un autre socket de processeur, mais il augmentait également le temps de latence en raison de la communication accrue qui devait être établie entre les deux processeurs. Une carte mère devait fractionner les données entre deux emplacements complètement séparés d'un ordinateur plutôt que de simplement les envoyer au processeur. La distance physique signifie en fait qu'un processus est plus lent. Le fait de placer ces processus sur une puce à plusieurs cœurs signifie non seulement moins de distance à parcourir, mais cela signifie également que différents cœurs peuvent partager des ressources pour effectuer des tâches particulièrement lourdes. Par exemple, les puces Intel Pentium II et Pentium III ont toutes deux été mises en œuvre dans des versions avec deux processeurs sur une carte mère.

Après un certain temps, les processeurs devenant plus puissants, les fabricants d’ordinateurs ont alors proposé le concept de l’hyper-threading. Le concept lui-même venait d’Intel et a été conçu pour la première fois en 2002 sur les processeurs de serveur Xeon de la société, puis sur ses processeurs de bureau Pentium 4. L'hyper-threading est encore utilisé aujourd'hui dans les processeurs et constitue même la principale différence entre les puces Intel i5 et i7. Il tire essentiellement parti du fait qu'il existe souvent des ressources inutilisées dans un processeur, en particulier lorsque les tâches nécessitent peu de puissance de traitement, ce qui pourrait être utilisé par d'autres programmes. Un processeur qui utilise l'hyper-threading se présente fondamentalement à un système d'exploitation comme s'il avait deux cœurs. Bien sûr, il n’a pas vraiment deux cœurs, mais pour deux programmes qui utilisent au moins la moitié de la puissance de traitement disponible, il peut aussi y avoir deux cœurs car ils peuvent à eux deux tirer parti de toute la puissance dont ils disposent. processeur doit offrir. Toutefois, l’hyper-threading sera légèrement plus lent qu’un processeur à deux cœurs s’il n’ya pas assez de puissance de calcul à partager entre les deux programmes utilisant le cœurs.

Vous pouvez trouver une vidéo perspicace donnant une explication brève et plus détaillée de l’hyper-threading ici.

Multi-processeurs

Après de nombreuses expériences, les processeurs à plusieurs cœurs ont finalement pu être construits. Cela signifiait qu'un seul processeur avait plus d'une unité de traitement. Par exemple, un processeur bicœur a deux unités de traitement, un quadricœur en a quatre, etc.

Alors pourquoi les entreprises ont-elles développé des processeurs à plusieurs cœurs? Eh bien, le besoin de processeurs plus rapides devenait de plus en plus évident, mais les développements dans les processeurs à un seul cœur ralentissaient. À partir des années 1980 jusqu'aux années 2000, les ingénieurs ont pu augmenter la vitesse de traitement de plusieurs mégahertz à plusieurs gigahertz. Des sociétés comme Intel et AMD ont réduit la taille des transistors, ce qui permettait de disposer de davantage de transistors dans le même espace, améliorant ainsi les performances.

Étant donné que la vitesse d'horloge du processeur est très liée au nombre de transistors pouvant tenir sur une puce, lorsque la technologie de rétrécissement des transistors a commencé à ralentir, le développement de vitesses de traitement plus élevées a également commencé à ralentir. Les entreprises n’étaient pas au courant pour la première fois des processeurs multicœurs, c’est quand elles ont commencé à expérimenter des processeurs multicœurs à des fins commerciales. Alors que les processeurs multicœurs ont été développés au milieu des années 80, ils étaient destinés aux grandes entreprises et n’étaient pas vraiment revisités avant que la technologie monocœur ne ralentisse. Le premier processeur multicœur a été développé par Rockwell International et était une version de la puce 6501 avec deux processeurs 6502 sur une puce (plus de détails à ce sujet dans cette entrée Wikipedia).

Que fait un processeur multicœur?

Eh bien, c'est vraiment très simple. Avoir plusieurs cœurs permet de faire plusieurs choses à la fois. Par exemple, si vous travaillez sur des e-mails, avez un navigateur Internet ouvert, travaillez sur une feuille de calcul Excel et écoutez de la musique dans iTunes, un processeur quad-core peut travailler sur toutes ces choses en même temps. Ou, si un utilisateur a une tâche à terminer immédiatement, elle peut être scindée en tâches plus petites et plus faciles à traiter.

L'utilisation de plusieurs cœurs ne se limite pas à plusieurs programmes. Par exemple, Google Chrome affiche chaque nouvelle page avec un processus différent, ce qui signifie qu’elle peut tirer parti de plusieurs cœurs à la fois. Certains programmes, cependant, sont appelés mono-threaded, ce qui signifie qu'ils n'ont pas été écrits pour pouvoir utiliser plusieurs cœurs et ne peuvent donc pas le faire. L’hyper-threading entre à nouveau en jeu, ce qui permet à Chrome d’envoyer plusieurs pages vers deux «cœurs logiques» sur un même cœur.

Aller de pair avec les processeurs multicœurs et l’hyper-threading est un concept appelé multithreading. Le multithreading est essentiellement la capacité d’un système d’exploitation de tirer parti de plusieurs cœurs en divisant le code en une forme de base, ou threads, et en l’alimentant simultanément à différents cœurs. Ceci est bien sûr important dans les multi-processeurs ainsi que dans les processeurs multicœurs. Le multi-threading est un peu plus complexe qu'il n'y paraît, car il nécessite que les systèmes d'exploitation ordonnent correctement le code de manière à ce que le programme puisse continuer à fonctionner efficacement.

Les systèmes d'exploitation eux-mêmes font des choses similaires avec des processus qui leur sont propres - cela ne se limite pas aux applications. Les processus du système d'exploitation sont des tâches que le système d'exploitation effectue toujours en arrière-plan, sans que l'utilisateur ne le sache nécessairement. Étant donné que ces processus sont toujours en cours, il peut être très utile d’avoir un hyper-threading et / ou plusieurs cœurs, car cela libère le processeur et lui permet de travailler sur d’autres choses, comme ce qui se passe dans les applications.

Comment fonctionnent les processeurs multicœurs?

Premièrement, la carte mère et le système d'exploitation doivent reconnaître le processeur et le nombre de cœurs. Les ordinateurs plus anciens ne disposant que d’un seul cœur, un système d’exploitation plus ancien risque de ne pas fonctionner correctement si un utilisateur tente de l’installer sur un ordinateur plus récent doté de plusieurs cœurs. Windows 95, par exemple, ne prend pas en charge l’hyper-threading ni les cœurs multiples. Tous les systèmes d'exploitation récents prennent en charge les processeurs multicœurs, notamment Windows 7, 8, le tout récent 10 et l'OS X 10.10 d'Apple.

En gros, le système d’exploitation indique alors à la carte mère qu’un processus doit être effectué. La carte mère informe ensuite le processeur. Dans un processeur multicœur, le système d'exploitation peut demander au processeur de faire plusieurs choses à la fois. Essentiellement, par le biais du système d’exploitation, les données sont déplacées du disque dur ou de la RAM, via la carte mère, vers le processeur.

Processeur multicœur

Dans un processeur, il existe plusieurs niveaux de mémoire cache qui contiennent des données pour la ou les opérations à venir du processeur. Grâce à ces niveaux de mémoire cache, le processeur n'a pas à chercher très loin pour trouver son prochain processus, ce qui lui fait gagner beaucoup de temps. Le premier niveau de mémoire cache est le cache L1. Si le processeur ne peut pas trouver les données dont il a besoin pour son prochain processus dans le cache L1, il recherche le cache L2. Le cache L2 est plus grand en mémoire, mais est plus lent que le cache L1.

Processeur monocœur

Si un processeur ne trouve pas ce qu'il recherche dans le cache L2, il continue jusqu'à L3 et, si un processeur en dispose, L4. Après cela, il regardera dans la mémoire principale ou dans la RAM d'un ordinateur.

Il existe également différentes manières pour différents processeurs de gérer les caches différents. Par exemple, certains dupliquent les données du cache N1 sur le cache N2, ce qui est fondamentalement un moyen de s'assurer que le processeur peut trouver ce qu'il recherche. Bien entendu, cela prend plus de mémoire dans le cache L2.

Différents niveaux de cache entrent également en jeu dans les processeurs multicœurs. Habituellement, chaque cœur aura son propre cache N1, mais partagera le cache N2. Cela diffère de la présence de plusieurs processeurs, car chaque processeur a ses propres antémémoires L1, L2 et autres niveaux. Avec plusieurs processeurs à cœur unique, le partage de cache est tout simplement impossible. L'un des principaux avantages d'un cache partagé est la possibilité d'utiliser un cache au maximum, car si l'un des cœurs n'utilise pas le cache, l'autre le peut.

Dans un processeur multicœur, lors de la recherche de données, un cœur peut consulter son propre cache L1 unique, puis s’étendre au cache L2 partagé, à la RAM et éventuellement au disque dur.

Il est probable que nous continuerons à voir le développement de plus de noyaux. Les vitesses d'horloge du processeur continueront sûrement à s'améliorer, mais à des vitesses plus faibles qu'auparavant. Bien qu'il ne soit pas rare aujourd'hui de voir des processeurs octa-core dans des choses comme les smartphones, assez rapidement, nous avons pu voir des processeurs avec des dizaines de cœurs.

Selon vous, où va la technologie de traitement multicœur? Faites-nous savoir dans les commentaires ci-dessous ou en créant un nouveau fil de discussion sur notre forum de communauté.

Tout sur les processeurs multicœurs: ce qu'ils sont, comment ils fonctionnent et d'où ils viennent