Quelle est la différence entre un cœur et un processeur?
Je l'ai déjà cherché sur Google, mais j'ai juste une définition multicœur et multiprocesseur, mais elle ne correspond pas à ce que je recherche.
Quelle est la différence entre un cœur et un processeur?
Je l'ai déjà cherché sur Google, mais j'ai juste une définition multicœur et multiprocesseur, mais elle ne correspond pas à ce que je recherche.
Réponses:
Un noyau est généralement l'unité de calcul de base du processeur - 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 processeurs Intel), en maintenant l'état du programme, les registres et l'ordre d'exécution corrects, et effectuer les opérations via les ALU . À des fins d'optimisation, un cœur peut également contenir des caches sur cœur avec des copies de blocs de mémoire fréquemment utilisés.
Un processeur 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 que le système d'exploitation planifie. Notez que le système d'exploitation peut avoir de nombreux threads à exécuter, mais le processeur ne peut exécuter X de telles tâches qu'à un moment donné, où X = nombre de cœurs * nombre de threads matériels par cœur. Les autres devront attendre que le système d'exploitation les planifie, que ce soit en préemptant les tâches en cours d'exécution ou tout autre moyen.
En plus du ou des cœurs, le CPU comprendra une certaine interconnexion qui connecte les cœurs au monde extérieur, et généralement également un grand cache partagé de "dernier niveau". Plusieurs autres éléments clés sont nécessaires pour faire fonctionner un processeur, mais leur emplacement exact peut différer selon la conception. Vous aurez besoin d'un contrôleur de mémoire pour communiquer avec la mémoire, des contrôleurs d'E / S (écran, PCIe, USB, etc.). Dans le passé, ces éléments étaient en dehors du CPU, dans le "chipset" complémentaire, mais la plupart des conceptions modernes les ont intégrés dans le CPU.
De plus, le CPU peut avoir un GPU intégré, et à peu près tout le reste que le concepteur voulait garder proche pour des considérations de performances, de puissance et de fabrication. La conception du processeur est principalement orientée vers ce qu'on appelle le système sur puce (SoC).
Il s'agit d'une conception "classique", utilisée par la plupart des appareils polyvalents modernes (PC client, serveurs, mais aussi tablettes et smartphones). Vous pouvez trouver des conceptions plus élaborées, généralement dans l'académie, où les calculs ne sont pas effectués dans des unités de base "de type noyau".
/proc/cpuinfo
, je vois seize processor:
lignes, bien que cela soit dit model: AMD Ryzen 7 2700X Eight-Core Processor
. Donc, au moins dans ce cas, chacun des 8 "cœurs" a deux "processeurs", ce qui est en contradiction avec d'autres réponses ici.
Une image peut dire plus de mille mots:
* Figure décrivant la complexité d'un système multiprocesseur et multicœur moderne.
La source:
Open images in new tab
puis effectuez un zoom avant en utilisant cltr
++
Clarifions d'abord ce qu'est un CPU et ce qu'est un core, un CPU d'unité centrale de traitement, peut avoir plusieurs unités de base, ces cœurs sont un processeur à lui seul, capable d'exécuter un programme mais il est autonome sur la même puce.
Dans le passé, un processeur était réparti entre plusieurs puces, mais à mesure que la loi de Moore progressait, ils ont créé un processeur complet dans une puce (matrice), depuis les années 90, le fabricant a commencé à installer plus de cœurs dans le même dé, c'est donc le concept de multicœur.
De nos jours, il est possible d'avoir des centaines de cœurs sur le même processeur (puce ou puce) GPU, Intel Xeon. Une autre technique développée dans les années 90 était le multi-threading simultané, fondamentalement, ils ont constaté qu'il était possible d'avoir un autre thread dans le même CPU monocœur, car la plupart des ressources étaient déjà dupliquées comme ALU, plusieurs registres.
Donc, fondamentalement, un processeur peut avoir plusieurs cœurs, chacun d'eux pouvant exécuter un thread ou plus en même temps, nous pouvons nous attendre à avoir plus de cœurs à l'avenir, mais avec plus de difficulté à pouvoir programmer efficacement.
Le CPU est une unité centrale de traitement. Depuis 2002, nous n'avons qu'un seul processeur à cœur, c'est-à-dire que nous n'effectuerons qu'une seule tâche ou un seul programme à la fois.
Pour avoir plusieurs programmes exécutés à la fois, nous devons utiliser le processeur multiple pour exécuter plusieurs processus à la fois, nous avons donc eu besoin d'une autre carte mère pour cela, ce qui est très coûteux.
Ainsi, Intel a introduit le concept d'hyper threading, c'est-à-dire qu'il convertira le processeur unique en deux processeurs virtuels, c'est-à-dire que nous avons deux cœurs pour notre tâche. Maintenant, le CPU est unique, mais il ne fait que prétendre (masqué) qu'il a un CPU double et effectue plusieurs tâches. Mais avoir de vrais cœurs multiples sera mieux que cela, donc les gens développent la fabrication de processeurs multi-cœurs, c'est-à-dire plusieurs processeurs sur une seule boîte, c'est-à-dire la capture d'un processeur multiple sur un seul grand processeur. C'est à dire plusieurs cœurs.
Au début ... comme avant les années 90 ... les processeurs n'étaient pas capables de faire des tâches multiples de manière efficace ... car un seul processeur pouvait gérer une seule tâche ... alors quand nous disions que mon antivirus, microsoft word, vlc, etc. les logiciels fonctionnent tous en même temps ... ce n'est pas vrai. Quand j'ai dit qu'un processeur pouvait gérer un seul processus à la fois ... je le pensais. En fait, il traiterait une seule tâche ... puis il avait l'habitude de suspendre cette tâche ... de prendre une autre tâche ... de la terminer si elle était courte ou de la mettre en pause et de l'ajouter à la file d'attente ... puis la suivante. Mais cette «pause» que j'ai mentionnée était si petite (environ 1 ns) que vous ne compreniez pas que la tâche a été interrompue. Par exemple. Sur vlc tout en écoutant de la musique, il y a d'autres applications qui s'exécutent simultanément mais comme je vous l'ai dit ... un programme à la fois ...
Mais il s'agissait des anciens processeurs ...
De nos jours, les processeurs, c'est-à-dire que les ordinateurs de 3e génération ont des processeurs multi-cœurs. Maintenant, les «cœurs» peuvent être comparés à un processeur de 1ère ou de 2e génération lui-même ... intégré sur une seule puce, un seul processeur. Alors maintenant, nous avons compris ce que sont les cœurs, ce sont des mini-processeurs qui se combinent pour devenir un processeur. Et chaque cœur peut gérer un seul processus à la fois ou plusieurs threads comme conçu pour le système d'exploitation. Et ils suivent les mêmes étapes que celles mentionnées ci-dessus à propos du processeur unique.
Par exemple. Un processeur i7 6gen possède 8 cœurs ... soit 8 mini processeurs en 1 i7 ... c'est à dire que sa vitesse est 8 fois plus élevée que les anciens processeurs. Et c'est ainsi que l'on peut effectuer plusieurs tâches.
Il pourrait y avoir des centaines de cœurs dans un seul processeur Par exemple. Intel i128.
J'espère avoir bien expliqué cela.
L'image d'Intel est utile, comme le montre la meilleure réponse de Tortuga. Voici une légende pour cela.
Processeur : une puce semi-conductrice, le CPU (unité centrale de traitement) logé dans un socket, vers les années 1950-2010. Au fil du temps, davantage de fonctions ont été intégrées à la puce du processeur. Avant les versions des processeurs monopuce des années 1950, un processeur pouvait s'étendre sur plusieurs puces. Au milieu des années 2010, les puces System-on-a-chip ont rendu un peu plus difficile à assimiler un processeur à une puce, bien que ce soit généralement ce que les gens entendent par processeur, comme dans "cet ordinateur a un processeur i7" ou "ce système informatique". a quatre processeurs. "
Noyau : un bloc d'un CPU, exécutant une instruction à la fois. (Vous verrez des gens dire une instruction par cycle d'horloge, mais certains processeurs utilisent plusieurs cycles d'horloge pour certaines instructions.)