Pourquoi des processeurs multicœurs?

16

Pourquoi les puces contiennent-elles de plus en plus de cœurs? Pourquoi ne pas fabriquer un processeur monocœur plus grand? Est-ce plus facile à fabriquer? Est-ce pour permettre aux programmes de multithread en utilisant des cœurs séparés?

rkrauter
la source
La raison en est principalement le marketing. La plupart des utilisateurs ne bénéficieront pas du multicœur, mais il est beaucoup mieux mis en avant. Cela a surtout du sens pour les serveurs ou les utilisateurs avancés.
harrymc
Certes, il y a du battage médiatique, mais il y a aussi des avantages. La plupart des utilisateurs de nos jours peuvent bénéficier d'un mulit-core (c'est-à-dire généralement dual-core) car la plupart utilisent un système d'exploitation qui a plusieurs threads d'exécution. Mais pour ceux qui utilisent encore Windows 95 ou une version antérieure, je conviens que le multicœur est probablement une perte de temps complète.
irrationnel John
chez harrymc: "La raison en est principalement le marketing. La plupart des utilisateurs ne bénéficieront pas du multicœur, mais il est beaucoup mieux mis en avant. Cela a surtout du sens pour les serveurs ou les utilisateurs avancés." --- Ces vendeurs gourmands d'huile de serpent ...
Daniel

Réponses:

25

La tendance vers les cœurs multiples est une approche d'ingénierie qui aide les concepteurs de CPU à éviter le problème de consommation d'énergie lié à la mise à l'échelle de fréquence toujours croissante. À mesure que la vitesse du processeur augmentait dans la plage de 3 à 4 GHz, la quantité d'énergie électrique nécessaire pour aller plus vite commençait à devenir prohibitive. Les raisons techniques sont complexes, mais des facteurs comme les pertes de chaleur et le courant de fuite (la puissance qui traverse simplement les circuits sans rien faire d'utile) augmentent tous les deux plus rapidement à mesure que les fréquences augmentent. Bien qu'il soit certainement possible de construire un processeur x86 à usage général 6 GHz, il n'est pas économique de le faire efficacement. C'est pourquoi le passage au multicœur a commencé et c'est pourquoi nous verrons cette tendance se poursuivre au moins jusqu'à ce que les problèmes de parallélisation deviennent insurmontables.

À titre d'exemple pratique, le E5640 Xeon (4 cœurs à 2,66 GHz) a une enveloppe de puissance de 95 watts tandis que le L5630 (4 cœurs à 2,13 GHz) ne nécessite que 40 watts. C'est 137% de puissance électrique en plus pour 24% de puissance CPU en plus pour les CPU qui sont pour la plupart compatibles avec les fonctionnalités. Le X5677 pousse la vitesse à 3,46 GHz avec quelques fonctionnalités supplémentaires, mais cela ne représente que 60% de puissance de traitement en plus pour 225% de puissance électrique en plus.

Comparez maintenant le X5560 (2,8 GHz, 4 cœurs, 95 watts) avec le nouveau X5660 (2,8 GHz, 6 cœurs, 95 watts) et il y a 50% de puissance de calcul supplémentaire dans le socket (potentiellement, en supposant que la loi d'Amdahl soit gentille avec nous pour maintenant) sans nécessiter d’alimentation électrique supplémentaire. Les processeurs AMD de la série 6100 enregistrent des gains similaires de performances globales par rapport à la série 2400 \ 8400 tout en maintenant la consommation électrique à plat.

Pour les tâches à thread unique, c'est un problème, mais si vous avez besoin de fournir de grandes quantités de puissance CPU globale à un cluster de traitement distribué ou à un cluster de virtualisation, c'est une approche raisonnable. Cela signifie que pour la plupart des environnements de serveurs, la mise à l'échelle du nombre de cœurs dans chaque processeur est une bien meilleure approche que d'essayer de construire des processeurs monocœur plus rapides et meilleurs.

La tendance se poursuivra pendant un certain temps, mais il y a des défis et l'augmentation continue du nombre de cœurs n'est pas facile (garder une bande passante mémoire suffisamment élevée et gérer les caches devient beaucoup plus difficile à mesure que le nombre de cœurs augmente). Cela signifie que la croissance actuelle assez explosive du nombre de cœurs par socket devra ralentir dans quelques générations et nous verrons une autre approche.

Helvick
la source
3
Je ne peux pas vous dire combien de fois j'ai essayé d'expliquer cela à des gens qui pensent toujours qu'un processeur 3,6 GHz il y a 5 ans est plus rapide qu'un processeur 2,8 GHz avec la dernière technologie. C'est exaspérant. Je déteste le mythe mégahertz.
churnd
N'y a-t-il pas également une limitation physique due à la vitesse de la lumière pour les signaux électriques?
mouche
1
@churnd - Mais tenez compte du fait qu'ils ont raison en quelque sorte. Car il ne faut pas mélanger vitesse et puissance (3,6 Ghz est incontestablement plus rapide que 2,8 Ghz; ce qu'il n'est pas est plus puissant). Cela peut faire une différence significative pour les programmeurs qui ont besoin de vitesses extrêmement rapides mais qui ne sont pas encore compétents avec les techniques de programmation de thread / parallèle.
Tour
3
@ldigas Ces programmeurs se soucient des taux d'exécution des instructions à cœur unique, et non des vitesses d'horloge principales. Les processeurs modernes ont des taux d'exécution d'instructions monocœur beaucoup plus élevés, même si la vitesse d'horloge est inférieure.
David Schwartz
5

Il devenait trop difficile de les rendre utiles plus rapidement.

Le problème est que vous devez travailler sur un tas d'instructions à la fois, le processeur x86 actuel a 80 instructions ou plus à travailler en même temps, et il semble que ce soit la limite, car il a été atteint avec le P4, diable , le Pentium Pro en a fait 40 en 1995. Les flux d'instructions typiques ne sont pas prévisibles au-delà de cela (vous devez deviner les branches, l'accès à la mémoire, etc.) pour faire exécuter plus de quelques instructions à la fois (486 en ont fait 5, Pentium en a fait 10, à peine) .

Donc, bien que vous puissiez les agrandir (unités plus fonctionnelles pour faire chaque partie de l'instruction), plus longues (pipelines plus profonds pour masquer la latence), cela ne semble pas faire beaucoup de bien. Et nous semblons également avoir heurté un mur avec une vitesse d'horloge. Et nous restons encore en mémoire. La division en plusieurs processeurs semble donc être une victoire. De plus, ils peuvent partager des caches.

Il y a beaucoup plus à cela, mais cela se résume à des programmes conventionnels ne peuvent pas être exécutés beaucoup plus rapidement sur n'importe quel matériel que nous pouvons imaginer comment concevoir et construire.

Maintenant, si la prévisibilité n'est pas un problème, par exemple, de nombreux problèmes scientifiques et graphiques (ils se résument souvent à multiplier cet ensemble de nombres par cet ensemble de nombres), ce n'est pas le cas, et donc la popularité de l'IA64 d'Intel ( Itanium) et les GPU, qui ne cessent de s'accélérer, mais ils ne vous aideront pas à mieux exécuter Word.

Ronald Pottol
la source
4

La puissance de calcul et la fréquence d'horloge d'un seul processeur ont atteint leur apogée il y a quelques années, il n'est tout simplement pas facile de créer des processeurs plus puissants et / ou plus rapides que les processeurs actuels; les principaux fabricants de processeurs (Intel, AMD) ont donc changé de stratégie et sont passés au multicœur. Cela nécessite bien sûr beaucoup plus de travail de la part des développeurs d'applications afin d'exploiter toute la puissance du multitâche: un programme s'exécutant sur une seule tâche ne bénéficie tout simplement pas d'un processeur multicœur (bien que le système bonus global car il ne se verrouille pas si un seul processus prend un seul processeur à 100% d'utilisation).

À propos de l'architecture physique (processeurs multicœurs au lieu de plusieurs monocœurs) ... vous devriez demander à Intel. Mais je suis sûr que cela a quelque chose à voir avec les cartes mères avec un seul socket CPU étant beaucoup plus faciles à concevoir et à fabriquer que les cartes avec plusieurs.

Massimo
la source
2
Je pense que nous allons entendre de façon excessive la loi d' Amdahl plus que la loi de Moore.
Evan Anderson
1

Afin d'augmenter les vitesses d'horloge, les transistors en silicium sur la puce doivent pouvoir commuter plus rapidement. Ces vitesses plus élevées nécessitent des tensions d'entrée plus élevées et des processus de fabrication de semi-conducteurs qui entraînent une plus grande fuite , ce qui augmente la consommation d'énergie et la production de chaleur. Vous atteignez finalement un point où vous ne pouvez plus augmenter les fréquences d'horloge sans nécessiter des quantités excessives de puissance ou en utilisant des solutions de refroidissement exotiques.

Pour illustrer ce problème, je vais comparer deux processeurs AMD modernes. L'AMD FX-9590 est capable d'atteindre des vitesses d'horloge allant jusqu'à 5 GHz, mais fonctionne à des tensions de base allant jusqu'à 1,912 V, ce qui est extrêmement élevé pour une puce de 32 nm et dissipe une folie de 220 watts de chaleur. Le FX-8350, qui est basé sur le même dé, fonctionne à un maximum de 4,2 GHz mais fonctionne à un maximum de 1,4 V et dissipe 125 watts.

En conséquence, au lieu d'essayer d'augmenter davantage les horloges, les ingénieurs ont cherché à faire fonctionner les puces plus rapidement par d'autres moyens, notamment en les concevant pour exécuter plusieurs processus simultanément, d'où des processeurs multicœurs.

bwDraco
la source
0

Loi de Moore . Fondamentalement, les processeurs ne peuvent pas être rendus plus rapides (la fréquence a atteint 3 GHz il y a 5 ans et n'a jamais beaucoup dépassé cela), ils sont donc rendus plus puissants en obtenant plus de cœurs.

wazoox
la source
À mon humble avis, la loi de Moore est plus une description qu'une prédiction ... bien sûr, elle l'a toujours été, mais rien ne garantit qu'elle ne se brisera pas demain. Vous ne pouvez tout simplement pas aller voir un ingénieur et lui dire "vous devriez pouvoir faire cela parce que la loi de Moore dit que c'est possible" alors que la physique ne le permet plus.
vlad-ardelean