Quelle est la différence entre un cœur et un processeur ?
J'ai déjà cherché sur Google, mais je n'obtiens que des définitions de multicœur et de multiprocesseur, ce qui n'est pas ce que je cherche.
Quelle est la différence entre un cœur et un processeur ?
J'ai déjà cherché sur Google, mais je n'obtiens que des définitions de multicœur et de multiprocesseur, ce qui n'est pas ce que je cherche.
Un cœur est généralement l'unité de calcul de base de l'unité centrale - il peut exécuter un seul contexte de programme (ou plusieurs s'il prend en charge les threads matériels tels que l'hyperthreading sur les unités centrales Intel), en maintenant l'état correct du programme, les registres et l'ordre d'exécution correct, et en effectuant les opérations par le biais de ALUs . À des fins d'optimisation, un cœur peut également contenir des caches on-core avec des copies des morceaux de mémoire fréquemment utilisés.
Une unité centrale peut avoir un ou plusieurs cœurs pour effectuer des tâches à un moment donné. Ces tâches sont généralement des processus logiciels et des threads planifiés par le système d'exploitation. Notez que le système d'exploitation peut avoir de nombreux threads à exécuter, mais que l'unité centrale ne peut exécuter que X tâches de ce type à un moment donné, où X = nombre de cœurs * nombre de threads matériels par cœur. Les autres tâches doivent attendre que le système d'exploitation les planifie, que ce soit en préemptant des tâches en cours d'exécution ou par tout autre moyen.
En plus d'un ou de plusieurs cœurs, l'unité centrale comprend une interconnexion qui relie les cœurs au monde extérieur, et généralement aussi un grand cache partagé de "dernier niveau". De nombreux autres éléments clés sont nécessaires au fonctionnement d'une unité centrale, mais leur emplacement exact peut varier en fonction de la conception. Vous aurez besoin d'un contrôleur de mémoire pour communiquer avec la mémoire, de contrôleurs d'E/S (affichage, PCIe, USB, etc.). Dans le passé, ces éléments se trouvaient à l'extérieur de l'unité centrale, dans le "chipset" complémentaire, mais la plupart des conceptions modernes les ont intégrés à l'unité centrale.
En outre, le processeur peut être doté d'un processeur graphique intégré et de pratiquement tous les autres éléments que le concepteur a voulu garder à portée de main pour des raisons de performances, d'énergie et de fabrication. La conception de l'unité centrale s'oriente principalement vers ce que l'on appelle les système sur puce (SoC).
Il s'agit d'une conception "classique", utilisée par la plupart des appareils modernes à usage général (PC clients, serveurs, mais aussi tablettes et smartphones). On trouve des conceptions plus élaborées, généralement dans les académies, où les calculs ne sont pas effectués dans des unités de base de type "core".
Précisons d'abord ce qu'est une unité centrale de traitement et ce qu'est un cœur, une unité centrale de traitement peut avoir plusieurs cœurs, ces cœurs sont un processeur en soi, capable d'exécuter un programme, mais ils sont autonomes sur la même puce.
Dans le passé, une unité centrale était répartie entre plusieurs puces. La loi de Moore Depuis les années 90, les fabricants ont commencé à intégrer plus de cœurs dans la même puce, d'où le concept de multicœur.
De nos jours, il est possible d'avoir des centaines de cœurs sur la même unité centrale (puce ou matrice) GPU, Intel Xeon. Une autre technique développée dans les années 90 était le multithreading simultané. En fait, ils ont découvert qu'il était possible d'avoir un autre thread dans le même CPU à cœur unique, puisque la plupart des ressources étaient déjà dupliquées, comme l'ALU, les registres multiples.
En gros, un processeur peut avoir plusieurs cœurs, chacun d'entre eux étant capable d'exécuter un ou plusieurs threads en même temps. Nous pouvons nous attendre à avoir plus de cœurs à l'avenir, mais il sera plus difficile de programmer efficacement.
CPU est une unité centrale de traitement. Depuis 2002, nous ne disposons que d'un processeur à cœur unique, c'est-à-dire que nous n'exécutons qu'une seule tâche ou un seul programme à la fois.
Pour pouvoir exécuter plusieurs programmes à la fois, nous devons utiliser plusieurs processeurs afin d'exécuter plusieurs processus à la fois, ce qui nécessite une autre carte mère, ce qui est très coûteux.
Intel a donc introduit le concept d'hyper threading, c'est-à-dire qu'il convertit l'unité centrale unique en deux unités centrales virtuelles, c'est-à-dire que nous disposons de deux cœurs pour notre tâche. Aujourd'hui, l'unité centrale est unique, mais elle fait semblant d'être une unité centrale double et d'effectuer des tâches multiples. Mais avoir de vrais cœurs multiples serait mieux que cela, c'est pourquoi les gens développent des processeurs multi-cœurs, c'est-à-dire des processeurs multiples sur une seule boîte, c'est-à-dire qu'ils saisissent plusieurs CPU sur un seul gros CPU. C'est-à-dire plusieurs cœurs.
Au début... avant les années 90... les processeurs n'étaient pas capables d'effectuer des tâches multiples de manière aussi efficace... parce qu'un seul processeur ne pouvait gérer qu'une seule tâche... donc quand nous avons l'habitude de dire que mon antivirus, microsoft word, vlc, etc. fonctionnent tous en même temps... ce n'est pas vrai en réalité. Lorsque j'ai dit qu'un processeur pouvait gérer un seul processus à la fois, j'étais sincère. Il traitait en fait une seule tâche... puis il mettait cette tâche en pause... prenait une autre tâche... la terminait si elle était courte ou la mettait à nouveau en pause et l'ajoutait à la file d'attente... puis la suivante. Mais cette "pause" que j'ai mentionnée était si petite (environ 1ns) que vous n'avez pas compris que la tâche avait été mise en pause. Par exemple, sur vlc pendant que vous écoutez de la musique, il y a d'autres applications qui tournent en même temps mais comme je vous l'ai dit... un programme à la fois... donc vlc fait une pause entre les deux pendant ns, donc vous ne le comprenez pas mais la musique s'arrête en fait entre les deux.
Mais il s'agissait des anciens processeurs...
De nos jours, les processeurs, c'est-à-dire les ordinateurs de troisième génération, sont dotés de processeurs multicœurs. Les "cœurs" peuvent être comparés à un processeur de première ou de deuxième génération... intégré dans une seule puce, un seul processeur. Nous avons donc compris ce que sont les cœurs, c'est-à-dire des mini-processeurs qui se combinent pour former un processeur. Et chaque cœur peut gérer un seul processus à la fois ou plusieurs threads selon le système d'exploitation. Et ils suivent les mêmes étapes que celles que j'ai mentionnées plus haut à propos du processeur unique.
Par exemple, un processeur i7 6gen a 8 cœurs... c'est-à-dire 8 mini-processeurs dans 1 i7... c'est-à-dire que sa vitesse est 8x plus élevée que celle des anciens processeurs. C'est ainsi que l'on peut faire du multi-tâches.
Un seul processeur pourrait contenir des centaines de cœurs Par exemple, Intel i128.
J'espère que je me suis bien expliqué.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.