Quelle est la différence entre MultiCore et MultiProcessor? [dupliquer]

Réponses:

28

Un CPU , ou Central Processing Unit, est ce que l'on appelle généralement un processeur. Un processeur contient de nombreuses parties discrètes, telles qu'un ou plusieurs caches de mémoire pour les instructions et les données, des décodeurs d'instructions et divers types d'unités d'exécution pour effectuer des opérations arithmétiques ou logiques.

Un système multiprocesseur contient plus d'un processeur de ce type, ce qui leur permet de fonctionner en parallèle. C'est ce qu'on appelle SMP ou Symmetric MultiProcessing.

Un processeur multicœur possède plusieurs cœurs d'exécution sur un processeur. Maintenant, cela peut signifier différentes choses selon l'architecture exacte, mais cela signifie essentiellement qu'un certain sous-ensemble des composants du CPU est dupliqué, de sorte que plusieurs "cœurs" peuvent fonctionner en parallèle sur des opérations distinctes. Ceci est appelé CMP, Multiprocessing au niveau de la puce.

Par exemple, un processeur multicœur peut avoir un cache L1 et une unité d'exécution séparés pour chaque cœur, tandis qu'il a un cache L2 partagé pour l'ensemble du processeur. Cela signifie que bien que le processeur dispose d'un grand pool de cache plus lent, il dispose d'une mémoire rapide séparée et d'unités arithmétiques / logiques pour chacun des cœurs. Cela permettrait à chaque cœur d'effectuer des opérations en même temps que les autres.

Il existe une autre division encore appelée SMT , Simultaneous Multithreading. C'est là qu'un sous-ensemble encore plus petit des composants d'un processeur ou d'un noyau est dupliqué. Par exemple, un noyau SMT peut avoir des ressources de planification de threads en double, de sorte que le noyau ressemble à deux "processeurs" distincts pour le système d'exploitation, même s'il ne possède qu'un seul ensemble d'unités d'exécution. Une implémentation courante de ceci est l'hyperthreading d'Intel.

Ainsi, vous pourriez avoir un système multiprocesseur, multicœur et multithread. Quelque chose comme deux processeurs quad-core hyperthreadés vous donnerait 2x4x2 = 16 processeurs logiques du point de vue du système d'exploitation.

Différentes charges de travail bénéficient de différentes configurations. Une charge de travail à un seul thread exécutée sur une machine principalement à usage unique bénéficie d'un système monocœur / processeur très rapide. Les charges de travail qui bénéficient de systèmes hautement parallélisés tels que les configurations SMP / CMP / SMT incluent celles qui contiennent de nombreuses petites pièces sur lesquelles travailler simultanément, ou des systèmes qui sont utilisés pour beaucoup de choses à la fois, comme un bureau utilisé pour surfer sur le Web, jouer à un jeu Flash et regarder une vidéo en même temps. En général, le matériel tend de plus en plus vers des architectures hautement parallèles, car la plupart des vitesses brutes CPU / core sont "assez rapides" pour les charges de travail courantes sur la plupart des modèles.

phoebus
la source
Et la chaleur, quelle configuration? Si vous entassez beaucoup de processeurs dans un seul boîtier CPU, la chaleur est très concentrée sur un seul endroit et nécessite de meilleures installations de refroidissement, ai-je raison? Si cela est vrai, pourquoi les fabricants restent avec cette conception, uniquement pour les coûts? Ou y a-t-il d'autres problèmes à surmonter lors de l'utilisation de noyaux séparés?
Codebeat
18

Tout le monde a donné suffisamment d'explications. Toujours si vous ne comprenez pas. Jetez un œil à ceci:

texte alternatif

les griffes
la source
Deux requêtes sur l'image que vous lui avez présentée 1) Qu'est-ce que APIC 2) Le diagramme dans la dernière ligne de cellules, pour Multicore et Multiprocesseur (2 diagrammes dans les première et troisième colonnes de la dernière ligne de la grille) semble être de même, sauf les lignes pointillées / pleines / carrées autour de l'ALU. Que signifient-ils?
goldenmean
2
@goldenmean: 1. APIC est en.wikipedia.org/wiki/… , c'est ce qui reçoit les interruptions d'autres appareils et agit. Je pourrais expliquer plus si vous avez des connaissances sur le fonctionnement interne de OperatingSystems 2) Eh bien, la ligne continue signifie qu'il s'agit de deux puces / matrices différentes comme indiqué dans la première ligne et la ligne pointillée montre qu'elles sont toutes deux sur une seule puce ou matrice
griffes
Cela devrait indiquer que "Jetez un œil à cette image, toujours si vous ne comprenez pas que tout le monde a donné suffisamment d'explications"
Teoman shipahi
2

un processeur multicœur contient deux cœurs ou plus dans un package physique.

un système multiprocesseur est un système qui contient plus d'un processeur physique. chacun de ces processeurs peut contenir plusieurs cœurs (comme l'a répondu WoodE).

quant à la façon dont ils se comparent:
dans un processeur multicœur, chacun des cœurs est généralement plus lent (en vitesse brute) qu'un processeur monocœur rapide. De plus, tous les cœurs de ce processeur partagent le même bus système et la même mémoire principale. Cependant, pour la plupart des tâches quotidiennes, ce n'est pas un problème notable et pour la plupart des utilisateurs, le système se sentira plus rapide car ils sont capables de faire des tâches plus simples à la fois.

dans un système multiprocesseur, les performances seront augmentées dans les cas où plusieurs tâches de haute intensité sont effectuées. selon la carte mère, cela peut être dû au fait que chaque processeur aura son propre bus dédié et / ou sa mémoire principale, ce qui leur permettra d'utiliser toutes les capacités de chacun pour ces tâches.

un système multi-processeurs multi-processeurs serait un mélange des avantages et des inconvénients de chacun.

De plus, à mesure que de plus en plus de programmes multithread (un programme capable de dire au processeur de travailler sur plusieurs tâches à la fois) sont développés, les inconvénients d'un processeur multicœur diminueront.

Xantec
la source
2

D'un point de vue ordinateur de bureau / portable, le multiprocesseur a deux ou plusieurs CPU séparés dans une machine.

Le multicœur a plusieurs cœurs de traitement sur la même puce, essentiellement plusieurs processeurs sur un bit de silicium. Pour être considéré comme multicœur, chaque cœur doit être essentiellement un processeur complet - le fait que même les premières puces Pentium aient plusieurs unités de calcul d'entiers (permettant un pipelining plus efficace) ne comptent pas.

Vous pouvez bien sûr avoir un arrangement multicœur multiprocesseur, avec plus d'un processeur multicœur dans la même machine.

Les avantages et les inconvénients peuvent être compliqués car il y a beaucoup de variables à considérer, mais certaines différences notables sont:

  • refroidissement: un processeur à deux cœurs produira souvent moins de chaleur perdue que deux unités à cœur unique distinctes de la même spécification et ne nécessitera qu'un seul dissipateur thermique et ventilateur, ce qui sera généralement moins cher (bien que toute la chaleur soit au même endroit, pas répartie sur deux, qui peuvent nécessiter des solutions de refroidissement de haute technologie)
  • vitesse due à la localisation du cache: étant sur la même puce, il existe des possibilités de rendre la cohérence / le partage du cache L2 (ou L3) plus efficace car les cœurs n'ont pas besoin de se coordonner sur une plus longue distance sur un bus de mémoire externe
  • différences de coûts dues à la simplicité: la solution multicœur ne nécessite pas plusieurs prises sur la carte mère, etc.
David Spillett
la source
1

En termes de base, un processeur multicœur est un processeur unique à plusieurs cœurs (quad-core a 4 cœurs, par exemple) où, en tant que système multiprocesseur, il y a plus d'un processeur sur la carte mère (qui peut également être multicœur).

En ce qui concerne les avantages et les inconvénients de chacun, cela devient un peu plus compliqué.

Edit: correction orthographique.

WoodE
la source
1

Le multicœur est composé de plusieurs cœurs dans un seul . Les multiprocesseurs sont des matrices multiples.

Mehper C. Palavuzlar
la source
1

à ma connaissance, un cœur est à l'intérieur d'un processeur, donc multi-cœur signifierait un seul processeur solide, multi-processeur est plusieurs processeurs sur une carte mère (je pense à réduire les problèmes de chauffage, ou peut-être même une charge utile partagée est égale à de meilleures performances) pas sûr, mais d'après ce que j'ai lu, je me suis dit que pour être précis

Dacota
la source