Pourquoi «ajouter plus de cœurs» ne rencontre-t-il pas les mêmes limitations physiques que «rendre le processeur plus rapide»?

110

En 2014, j'ai entendu beaucoup de langages de programmation vantés pour leurs fonctionnalités de concurrence. La concurrence est cruciale pour les gains de performances.

En faisant cette déclaration, de nombreuses personnes renvoient à un article de 2005 intitulé The Free Lunch Is Over: Un tournant fondamental vers la concurrence dans les logiciels . L'argument de base est qu'il est de plus en plus difficile d'augmenter la vitesse d'horloge des processeurs, mais nous pouvons toujours mettre plus de cœurs sur une puce et que pour obtenir des performances supérieures, un logiciel devra être écrit pour tirer parti de plusieurs cœurs.

Quelques citations clés:

Nous sommes habitués à voir les processeurs à 500 MHz céder la place à des processeurs à 1 GHz céder la place à des processeurs à 2 GHz, et ainsi de suite. Aujourd'hui, nous sommes dans la gamme 3GHz sur les ordinateurs grand public.

La question clé est: quand cela finira-t-il? Après tout, la loi de Moore prédit une croissance exponentielle et une croissance exponentielle ne peut évidemment pas durer éternellement avant que nous n'atteignions de dures limites physiques. la lumière ne devient pas plus rapide. La croissance doit éventuellement ralentir et même se terminer.

… Il est devenu de plus en plus difficile d'exploiter des vitesses d'horloge plus élevées en raison non pas d'un, mais de plusieurs problèmes physiques, notamment la chaleur (trop et trop difficile à dissiper), la consommation électrique (trop élevée) et les problèmes de fuite de courant.

... l'avenir de Intel et de la plupart des fournisseurs de processeurs est ailleurs, les sociétés de puces poursuivant de manière agressive les mêmes nouvelles orientations multicœurs.

... Multicore consiste à exécuter deux processeurs réels ou plus sur une même puce.

Les prédictions de cet article semblent avoir tenu le coup, mais je ne comprends pas pourquoi. Je n'ai que des idées très vagues sur le fonctionnement du matériel.

Ma vision trop simpliste est la suivante: "Il devient de plus en plus difficile d’intégrer plus de puissance de traitement dans le même espace" (en raison de problèmes de chaleur, de consommation électrique, etc.). Je m'attendrais à ce que la conclusion soit "par conséquent, nous devrons avoir de plus gros ordinateurs ou exécuter nos programmes sur plusieurs ordinateurs". (Et en effet, le cloud computing distribué est une chose dont nous entendons davantage parler.)

Mais une partie de la solution semble être des architectures multicœurs. À moins que les ordinateurs ne grossissent (ce qu'ils n'ont pas fait), cela semble simplement être une autre façon de dire "placez davantage de puissance de traitement dans le même espace".

Pourquoi "ajouter plus de cœurs" n'a-t-il pas les mêmes contraintes physiques que "rendre le processeur plus rapide"?

S'il vous plaît expliquer dans les termes les plus simples que vous pouvez. :)

Nathan Long
la source
4
en.wikipedia.org/wiki/Moore%27s_law mérite d'être lu - puisqu'il s'agit de deux choses différentes. La loi de Moore ne concerne pas la vitesse d'horloge, mais le compteur de transistors
Journeyman Geek
9
Supposons que c'était il y a 30 ans et que les processeurs tournaient à 4,77 MHz. Pourquoi pourriez-vous mettre 1000 ordinateurs équipés de processeurs à 4 MHz dans la même pièce alors qu'il était impossible d'obtenir un processeur à 4 GHz?
user253751
3
@NathanLong mais il est toujours beaucoup plus facile d'obtenir plus d'espace (pour plus d'ordinateurs) que d'obtenir un ordinateur plus rapide.
user253751
5
Analogie: un moteur de voiture ne peut être fabriqué qu’à autant de tours par minute, mais vous pouvez facilement en verrouiller deux ensemble.
OJFord

Réponses:

143

Sommaire

  • Économie. Il est plus économique et plus simple de concevoir un processeur qui comporte plus de cœurs qu'une vitesse d'horloge supérieure, car:

  • Augmentation significative de la consommation d'énergie. La consommation d'énergie du processeur augmente rapidement à mesure que vous augmentez la vitesse d'horloge - vous pouvez doubler le nombre de cœurs travaillant à une vitesse inférieure dans l'espace thermique nécessaire pour augmenter la vitesse d'horloge de 25%. Quadruple pour 50%.

  • Il existe d'autres moyens d'augmenter la vitesse de traitement séquentiel et les fabricants de processeurs en font bon usage.


Je vais m'appuyer beaucoup sur les excellentes réponses à cette question sur l'un de nos sites SE. Alors allez-y!


Limites de la vitesse d'horloge

Il existe quelques limitations physiques connues à la vitesse d'horloge:

  • Temps de transmission

    Le temps nécessaire pour qu'un signal électrique traverse un circuit est limité par la vitesse de la lumière. C'est une limite difficile, et il n'y a pas de moyen connu de la contourner 1 . Aux horloges en gigahertz, nous approchons de cette limite.

    Cependant, nous n'y sommes pas encore. 1 GHz signifie une nanoseconde par tick d'horloge. Pendant ce temps, la lumière peut parcourir 30 cm. À 10 GHz, la lumière peut parcourir 3 cm. Un seul cœur de processeur mesure environ 5 mm de large, nous allons donc rencontrer ces problèmes au-delà de 10 GHz. 2

  • Délai de commutation

    Il ne suffit pas de prendre en compte le temps qu’il faut à un signal pour se déplacer d’un bout à l’autre. Nous devons également tenir compte du temps qu’il faut à une porte logique de la CPU pour passer d’un état à l’autre! À mesure que nous augmentons la vitesse d'horloge, cela peut devenir un problème.

    Malheureusement, je ne suis pas sûr des détails et je ne peux fournir aucun chiffre.

    Apparemment, injecter plus de puissance peut accélérer la commutation, mais cela entraîne à la fois des problèmes de consommation d'énergie et de dissipation de chaleur. En outre, plus de puissance signifie que vous avez besoin de gaines plus volumineuses, capables de la manipuler sans dommage.

  • Dissipation thermique / consommation d'énergie

    C'est le grand. Citant la réponse de fuzzyhair2 :

    Les processeurs récents sont fabriqués en utilisant la technologie CMOS. Chaque fois qu'il y a un cycle d'horloge, le courant est dissipé. Par conséquent, des vitesses de processeur plus élevées signifient une plus grande dissipation de chaleur.

    Ce fil de discussion sur le forum AnandTech contient de jolies mesures et a même déduit une formule pour la consommation d'énergie (qui va de pair avec la chaleur générée):

    Formule
    Crédit à Idontcare

    Nous pouvons le visualiser dans le graphique suivant:

    Graphique
    Crédit à Idontcare

    Comme vous pouvez le constater, la consommation d'énergie (et la chaleur générée) augmente extrêmement rapidement lorsque la vitesse d'horloge augmente au-delà d'un certain point. Cela rend impossible d'augmenter sans cesse la vitesse d'horloge.

    La raison de l'augmentation rapide de la consommation d'énergie est probablement liée au délai de commutation - il ne suffit pas d'augmenter simplement la puissance proportionnellement à la fréquence d'horloge; la tension doit également être augmentée pour maintenir la stabilité à des horloges plus élevées. Cela peut ne pas être complètement correct; n'hésitez pas à signaler des corrections dans un commentaire ou à modifier cette réponse.


Plus de noyaux?

Alors pourquoi plus de noyaux? Eh bien, je ne peux pas répondre à cette question définitivement. Il faudrait demander aux gens d’Intel et d’AMD. Mais vous pouvez voir plus haut qu'avec les CPU modernes, il devient parfois impossible d'augmenter la vitesse d'horloge.

Oui, le multicœur augmente également la puissance requise et la dissipation de chaleur. Mais cela évite nettement les problèmes de temps de transmission et de retard de commutation. Et, comme vous pouvez le constater sur le graphique, vous pouvez facilement doubler le nombre de cœurs d’un processeur moderne avec le même surcoût thermique qu’une augmentation de 25% de la vitesse d’horloge.

Certaines personnes l'ont déjà fait - le record du monde d'overclocking actuel est tout près de 9 GHz. Cependant, cela représente un défi technique important tout en maintenant la consommation d'énergie dans des limites acceptables. À un moment donné, les concepteurs ont décidé qu’ajouter davantage de cœurs pour effectuer davantage de travail en parallèle augmenterait plus efficacement les performances dans la plupart des cas.

C'est là que les considérations économiques entrent en jeu - il était probablement moins cher (moins de temps de conception, moins de fabrication compliquée) de passer par la route multicœur. Et il est facile à commercialiser - qui n'aime pas la toute nouvelle puce octa-core ? (Bien sûr, nous savons que le multicœur est plutôt inutile quand le logiciel ne s'en sert pas ...)

Il y a un inconvénient à la technologie multicœur: vous avez besoin de plus d'espace physique pour mettre le noyau supplémentaire. Cependant, la taille des processus du processeur diminue constamment, ce qui laisse beaucoup d'espace pour placer deux copies d'une conception précédente - le vrai compromis n'est pas de pouvoir créer des noyaux uniques plus grands et plus complexes. Encore une fois, augmenter la complexité du noyau est une mauvaise chose du point de vue de la conception - plus de complexité = plus d’erreurs / bugs et d’erreurs de fabrication. Nous semblons avoir trouvé un juste milieu avec des cœurs efficaces suffisamment simples pour ne pas prendre trop de place.

Nous avons déjà atteint une limite avec le nombre de cœurs que nous pouvons adapter à une seule matrice aux tailles de processus actuelles. Nous risquons peut-être d’avoir une marge de manœuvre réduite au plus tôt. Alors, quelle est la prochaine? Avons-nous besoin de plus? C'est difficile à répondre, malheureusement. Quelqu'un ici est un voyant?


Autres moyens d'améliorer les performances

Donc, nous ne pouvons pas augmenter la vitesse d'horloge. Et plus de cœurs présentent un inconvénient supplémentaire: ils ne sont utiles que lorsque le logiciel qui les exécute peut les utiliser.

Alors, que pouvons-nous faire d'autre? Comment les processeurs modernes sont-ils tellement plus rapides que les anciens à la même vitesse d'horloge?

La vitesse d'horloge n'est en réalité qu'une approximation très grossière du fonctionnement interne d'un processeur. Tous les composants d’un processeur ne fonctionnent pas à cette vitesse - certains peuvent fonctionner une fois tous les deux ticks, etc.

Ce qui est plus important, c'est le nombre d' instructions que vous pouvez exécuter par unité de temps. C'est une mesure bien meilleure de tout ce qu'un noyau de processeur peut accomplir. Quelques instructions certains prendront un cycle d'horloge, d'autres trois. La division, par exemple, est considérablement plus lente que l'addition.

Nous pourrions donc améliorer les performances d’un processeur en augmentant le nombre d’instructions qu’il peut exécuter par seconde. Comment? Eh bien, vous pourriez rendre une instruction plus efficace - peut-être que la division ne prend plus que deux cycles. Ensuite, il y a les instructions pipelining . En divisant chaque instruction en plusieurs étapes, il est possible d'exécuter des instructions «en parallèle» - mais chaque instruction a toujours un ordre séquentiel bien défini, respectif aux instructions avant et après, de sorte qu'il ne nécessite pas de prise en charge logicielle telle que le multicœur. Est-ce que.

Il existe un autre moyen: des instructions plus spécialisées. Nous avons vu des exemples tels que SSE, qui fournit des instructions pour traiter de grandes quantités de données à la fois. De nouveaux jeux d'instructions sont constamment introduits avec des objectifs similaires. Celles-ci, là encore, requièrent un support logiciel et augmentent la complexité du matériel, mais elles apportent de belles performances. Récemment, il y avait AES-NI, qui fournit un cryptage et un décryptage AES à accélération matérielle, bien plus rapide qu'un ensemble d'arithmétique implémenté dans le logiciel.


1 Non sans entrer assez profondément dans la physique quantique théorique, en tout cas.

2 Il pourrait en fait être inférieur, car la propagation du champ électrique n’est pas aussi rapide que la vitesse de la lumière dans le vide. De plus, cela ne concerne que la distance en ligne droite - il est probable qu'il existe au moins un chemin considérablement plus long qu'une ligne droite.

Bob
la source
22
En outre, dans de nombreuses applications, le goulot d'étranglement n'est pas le temps de calcul, mais le temps d'arrêt pour extraire des données de la RAM (ou, Dieu nous en préserve, du disque); Une autre accélération majeure provient donc de caches de processeur plus gros et plus rapides.
Matteo Italia
2
@ MattoItalia Yup. Et il y a aussi des améliorations des prévisions de branche, et probablement beaucoup plus que je ne connais pas. En dehors du processeur, nous avons également des bus plus rapides, une mémoire plus rapide, des disques plus rapides et les protocoles associés, etc.
Bob
2
Vous avez mentionné que des problèmes liés à la "limite stricte" de la vitesse de la lumière se produiraient à "quelque part au-delà de 20 GHz". Vos calculs ne sont pas corrects. les signaux électriques voyagent à des vitesses inférieures à la vitesse de la lumière, en fonction de la géométrie du fil.
Giulio Muscarello
5
S'il vous plaît ne pas utiliser "exponentielle" quand il y a tout à fait plus de mots corrects pour cette relation (quadratique, cubique, etc.) ...
Oliver Charlesworth
7
@ OliCharlesworth Veuillez lire la note de bas de page. C’est précisément pour cette raison que la note de bas de page est là et que j’ai exponentialutilisé des références partout . Ceci est une utilisation parfaitement valable du mot, et il serait tangible au point de cette réponse de s'enliser dans des détails mathématiques. Si vous voulez vraiment essayer de le "corriger", n'hésitez pas à suggérer une modification. Ce ne sera pas à moi si cela est accepté ou non, tant que vous ne modifiez pas le sens de manière significative.
Bob
14

La physique est la physique. Nous ne pouvons pas continuer à emballer plus de transistors dans des espaces toujours plus petits. À un moment donné, cela devient si petit que vous traitez avec de la merde quantique étrange. À un moment donné, nous ne pouvons pas emballer deux fois plus de transistors en une année qu'auparavant (ce qui est la loi de Moore).

Les vitesses d'horloge brutes ne veulent rien dire. Mon ancien Pentium M correspondait à peu près à la moitié de la vitesse d'horloge d'un processeur de bureau contemporain (et pourtant, à bien des égards, plus rapide ) - et les systèmes modernes s'approchent à peine de la vitesse des systèmes d'il y a 10 ans (et sont clairement plus rapides). Fondamentalement, le simple fait d'augmenter la vitesse d'horloge ne donne pas de réels gains de performances dans de nombreux cas. Cela peut être utile dans certaines opérations en lecture seule, mais vous feriez mieux de dépenser le budget de conception de manière à améliorer l'efficacité de tout le reste.

Les noyaux multiples vous permettent de faire deux ou plusieurs choses à la fois, vous n'avez donc pas besoin d'attendre qu'une chose soit terminée pour la suivante. Sur le court terme, vous pouvez simplement insérer deux cœurs existants dans le même package (par exemple avec les Pentium D et leur MCM, qui était une conception de transition) et vous avez un système deux fois plus rapide. La plupart des implémentations modernes partagent des choses comme un contrôleur de mémoire bien sûr.

Vous pouvez également construire plus intelligemment de différentes manières. ARM fait Big-Little - 4 noyaux de faible puissance «faibles» travaillant en parallèle avec 4 noyaux plus puissants, vous offrant ainsi le meilleur des deux mondes. Intel vous permet de ralentir (pour une meilleure efficacité énergétique) ou d’overclocker des cœurs spécifiques (pour de meilleures performances à un seul thread). Je me souviens qu'AMD faisait quelque chose avec les modules.

Vous pouvez également déplacer des éléments tels que des contrôleurs de mémoire (de sorte que vous avez une latence plus faible) et des fonctions liées aux E / S (le processeur moderne n’a pas de pont nord) ainsi que la vidéo (ce qui est plus important avec les ordinateurs portables et la conception AIW). Il est plus logique de faire ces choses que de simplement continuer à augmenter la vitesse d'horloge.

À un moment donné, «plus» de cœurs risquent de ne pas fonctionner, même si les GPU ont des centaines de cœurs.

Le multicœur en tant que tel permet aux ordinateurs de fonctionner plus intelligemment de toutes ces manières.

Compagnon Geek
la source
1
Il convient de noter que les cœurs de processeur graphique ont été conçus dans un but très spécifique, par opposition aux cœurs de processeur, qui sont plutôt généraux. Il convient également de noter que les cartes vidéo sont nettement plus grandes que les processeurs (même si les cœurs n'utilisent pas toute la place disponible sur la carte, ils ont BEAUCOUP plus d'espace pour dissiper la chaleur).
user2366842
3
C’est vrai, mais c’est un exemple où vous augmentez considérablement la taille des cœurs. Je reviendrai probablement sur cette réponse
demain
"vous pouvez simplement insérer deux cœurs existants dans le même paquet". Mais comment ils y parviennent sans utiliser plus d’espace pour les noyaux supplémentaires ? Comment?! La magie? Licornes? Chiots? (Par votre avatar, je soupçonne ce dernier)
Ce Brésilien
Pentium Ds étaient en.wikipedia.org/wiki/Pentium_D essentiellement
Journeyman Geek
6
wierd quantum crap+ 1 pour ça seul!
Dave
9

Réponse simple

La réponse la plus simple à la question

Pourquoi "ajouter plus de cœurs" n'a-t-il pas les mêmes contraintes physiques que "rendre le processeur plus rapide"?

se trouve réellement dans une autre partie de votre question:

Je m'attendrais à ce que la conclusion soit "par conséquent, nous devrons avoir de plus gros ordinateurs ou exécuter nos programmes sur plusieurs ordinateurs".

Par essence, plusieurs cœurs, c'est comme avoir plusieurs "ordinateurs" sur le même périphérique.

Réponse complexe

Un "noyau" est la partie de l'ordinateur qui traite réellement les instructions (additionner, multiplier, "et", etc.). Un noyau ne peut exécuter qu'une seule instruction à la fois. Si vous voulez que votre ordinateur soit "plus puissant", vous pouvez faire deux choses de base:

  1. Augmenter le débit (augmenter la fréquence d'horloge, diminuer la taille physique, etc.)
  2. Utiliser plus de cœurs sur le même ordinateur

Les limitations physiques à # 1 sont principalement la nécessité de rejeter la chaleur causée par le traitement et la vitesse d'un électron dans le circuit. Une fois que vous avez séparé certains de ces transistors en un noyau séparé, vous soulagez le problème de la chaleur dans une large mesure.

Il y a une limite importante au n ° 2: vous devez pouvoir diviser votre problème en plusieurs problèmes indépendants , puis combiner la réponse. Sur un ordinateur personnel moderne, cela ne pose pas vraiment de problème, car de nombreux problèmes indépendants luttent tous pour obtenir du temps de calcul avec le (s) noyau (s) de toute façon. Toutefois, lors de la résolution de problèmes de calcul intensifs, la présence de plusieurs cœurs n’est vraiment utile que si le problème peut être traité en mode simultané.

Jason Brubaker
la source
"Plusieurs cœurs, c'est comme avoir plusieurs" ordinateurs "sur le même périphérique." Oui, mais ma confusion était, comment vous situez-vous tous là? Je pensais que "nous ne pouvons pas aller plus vite" était un symptôme de "nous ne pouvons pas réduire les choses beaucoup plus".
Nathan Long
Les noyaux multiples prennent plus de place, les puces grossissent. La charge a été transférée de la CPU à l’ingénieur logiciel… Pour que l’écran devienne plus rapide sur l’un de ces cpus géants multicœurs, le logiciel doit être écrit de manière à pouvoir réduire de moitié son travail et faire les deux moitiés de façon autonome.
James
1
Une réponse brève est que la consommation d'énergie est proportionnelle au cube de la vitesse d'horloge. Avec des signaux parcourant de plus longues distances, l'illusion de thread unique devient plus difficile à maintenir. La réponse détaillée: amazon.com/…
Rob
6

Pourquoi "ajouter plus de cœurs" n'a-t-il pas les mêmes contraintes physiques que "rendre le processeur plus rapide"?

Ils sont confrontés aux mêmes limitations physiques, mais le passage à la conception multicœur nous laisse un peu de répit avant d’en frapper quelques-uns. Dans le même temps, d’autres problèmes liés à ces limitations se posent, mais ils sont plus faciles à surmonter.

Fait 1: La consommation d'énergie et la chaleur émise croissent plus rapidement que la puissance de calcul. Pousser un processeur de 1 GHz à 2 GHz pousse la consommation d'énergie de 20 W à 80 W, même en cas de chaleur dissipée. (Je viens de composer ces chiffres, mais c'est tout à fait comme ça que ça marche)

Fait 2: L' achat d'un deuxième processeur et l'utilisation des deux à 1 GHz doubleraient votre puissance de calcul. Deux processeurs fonctionnant à 1 GHz pourraient traiter la même quantité de données qu'un processeur à 2 GHz, mais chacun ne consommerait que 20 W d'énergie, soit 40 W au total.

Bénéfice: doubler le nombre de CPU au lieu de la fréquence d'horloge nous permet d'économiser de l'énergie et nous ne sommes plus aussi proches de la "barrière de fréquence" qu'auparavant.

Problème: vous devez fractionner le travail entre deux processeurs et combiner les résultats ultérieurement.

Si vous pouvez résoudre ce problème en un temps acceptable et en utilisant moins d'énergie que ce que vous venez d'économiser, vous ne pourrez que profiter de l'utilisation de plusieurs processeurs.

Il ne vous reste plus qu'à fusionner deux processeurs en un processeur dual-core et vous êtes chez vous. Ceci est avantageux car les cœurs peuvent partager certaines parties de la CPU, par exemple le cache ( réponse associée ).

Gronostaj
la source
Nous continuons à frapper les limites physiques de 1000 manières différentes, taille de la matrice (pour les multi-cœurs conduisant à un processus de fabrication plus petit), taille du mobo (pour plusieurs cpu), amplis tirés à travers les traces (les deux). ce n'est pas comme si vous pouviez mettre 2 processeurs sur un m-atx ou 4 et de la mémoire sur une carte atx et ces conceptions prennent DECADES pour changer. Je suis d'accord avec le reste.
Rostol
@Rostol C'est un bon point, j'ai édité la réponse.
gronostaj
5

Bref récit: l’accélération des cœurs simples a atteint ses limites, nous continuons donc à les réduire et à en ajouter d’autres, jusqu’à ce que cela atteigne ses limites ou que nous puissions utiliser de meilleurs matériaux (ou réaliser une avancée fondamentale qui renverse la technologie établie, comme à la maison, en train de travailler, informatique quantique).

Je pense que ce problème est multidimensionnel et qu’il faudra un peu d’écriture pour brosser un tableau plus complet:

  1. Limites physiques (imposées par la physique réelle): comme la vitesse de la lumière, la mécanique quantique, tout ça.
  2. Problèmes de fabrication: comment fabriquer des structures de plus en plus petites avec la précision requise? Problèmes liés aux matières premières, matériaux utilisés pour construire des circuits, durabilité.
  3. Problèmes architecturaux: chaleur, inférence, consommation d'énergie, etc.
  4. Problèmes économiques: Quel est le moyen le plus économique d’obtenir plus de performances pour l’utilisateur?
  5. Cas d'utilisation et perception de la performance par l'utilisateur.

Il peut y en avoir beaucoup plus. Un processeur polyvalent tente de trouver une solution permettant de brouiller tous ces facteurs (et plus encore) en une seule puce, pouvant être produite en masse, qui correspond à 93% des sujets sur le marché. Comme vous le voyez, le dernier point est le plus crucial, la perception du client, qui découle directement de la manière dont le client utilise le processeur.

Demandez-vous quelle est votre application habituelle? Peut-être que: 25 onglets Firefox, chacun jouant des annonces en arrière-plan, pendant que vous écoutez de la musique, tout en attendant votre travail de construction que vous avez commencé il y a environ 2 heures. C'est beaucoup de travail à faire, et vous voulez toujours une expérience en douceur. Mais votre CPU peut gérer UNE tâche à la fois! Sur une seule chose. Donc, ce que vous faites est que vous divisez les choses et faites une longue file d'attente et que chacun reçoit sa propre part et tous sont heureux. Sauf pour vous parce que tout devient lent et pas lisse du tout.

Donc, vous accélérez votre processeur, afin de faire plus d'opérations dans le même temps. Mais comme vous l'avez dit: consommation de chaleur et d'électricité. Et c'est là que nous arrivons à la partie matière première. Le silicium devient plus conducteur au fur et à mesure qu'il chauffe, ce qui signifie que plus de courant circule dans le matériau lorsque vous le chauffez. Les transistors consomment plus d'énergie si vous les commutez plus rapidement. De plus, les hautes fréquences aggravent la diaphonie entre les fils courts. Donc, vous voyez, l'approche accélérée conduira à un "effondrement". Tant que nous n'avons pas de meilleures matières premières que le silicium ou des transistors bien meilleurs, nous sommes bloqués là où nous sommes avec une seule vitesse de base.

Cela nous ramène à l'endroit où nous avons commencé. Faire des choses, en parallèle. Ajoutons un autre noyau. Nous pouvons maintenant faire deux choses en même temps. Laissons donc les choses un peu de côté et écrivons un logiciel capable de scinder son travail en deux cœurs moins puissants mais plus fonctionnels. Cette approche présente deux problèmes principaux (en plus du fait que le monde logiciel a besoin de temps pour s’y adapter): 1. Agrandir la taille de la puce ou réduire la taille du cœur individuel. 2. Certaines tâches ne peuvent tout simplement pas être divisées en deux parties exécutées simultanément. Continuez à ajouter des noyaux aussi longtemps que vous pouvez les réduire, ou agrandissez la puce et évitez le problème de chaleur. Oh et n'oublions pas le client. Si nous changeons nos cas d'utilisation, les industries doivent s'adapter. Découvrez toutes les "nouveautés" brillantes proposées par le secteur de la téléphonie mobile.

Oui, cette stratégie atteindra ses limites! Et Intel le sait, c’est la raison pour laquelle ils disent que l’avenir se situe ailleurs. Mais ils continueront à le faire tant que ce sera bon marché, efficace et faisable.

Dernier point mais non le moindre: la physique. La mécanique quantique limitera le rétrécissement des copeaux. La vitesse de la lumière n’est pas encore une limite, car les électrons ne peuvent pas se déplacer à la vitesse de la lumière dans le silicium, c’est en fait beaucoup plus lent que cela. De plus, c'est la vitesse d'impulsion qui met le plus difficile à la vitesse offerte par un matériau. Tout comme le son voyage plus rapidement dans l'eau que dans l'air, les impulsions électriques se propagent plus rapidement dans le graphène, par exemple, que dans le silicium. Cela ramène aux matières premières. Le graphène est bon pour ses propriétés électriques. La fabrication de processeurs serait un bien meilleur matériau. Malheureusement, il est très difficile de produire en grande quantité.

paradoxon
la source
2

Dites (à titre d'exemple irréaliste, mais devrait quand même faire passer le message), vous avez un processeur tournant à 100F. Le fonctionnement multicœur se fait généralement en prenant la fréquence d'horloge du processeur qui tourne à 100 ° F et en l'abaissant, ce qui réduit légèrement la vitesse. Comme il ne fait plus très chaud, ils peuvent en doubler un deuxième, un troisième, voire un quatrième, sans affecter de manière significative la température globale de la CPU et tirer parti des avantages du multicœur. Cela vient évidemment avec des frais généraux, car les cœurs doivent encore être contrôlés d'un endroit à un autre. Plus vous ajoutez de cœurs, plus il y a de frais généraux. En ce qui concerne les noyaux simples, plus vous augmentez leur vitesse, plus ils génèrent de la chaleur. Cela a évidemment des limites physiques (c’est-à-dire qu’après un certain point, cela commence à nuire à la performance,

Au fil du temps, ils ont trouvé des moyens de réduire la taille physique des processeurs. C’est pourquoi nous n’avons pas encore vraiment besoin de plus d’espace. Cependant, par exemple, les processeurs à 16 cœurs n’existent pas vraiment au moment de la rédaction) en dehors des équipements de niveau serveur en raison de limitations de taille physique, les UC de niveau serveur étant physiquement beaucoup plus volumineuses que les équipements grand public standard.

utilisateur2366842
la source
2

CPU = moteur de voiture: Il est plus facile de fabriquer une voiture plus puissante avec 16 soupapes, c'est-à-dire une lamborghini, qu'une voiture à haut régime qui aurait un cylindre / soupape géant à 100 000 tr / min.

Les raisons sont physiques et chimiques, le silicium doit être remplacé par un carburant de fusée informatique pour changer l’équilibre entre le nombre de cœurs et leur vitesse.

prédatapets
la source
2

Je dirais que la principale restriction des limites de puissance de calcul est principalement liée à la vitesse à laquelle nous pouvons déplacer l'électron dans un circuit ( vitesse de dérive des électrons légers ). Il existe de nombreux autres facteurs que vous avez mentionnés.

L'ajout de cœurs supplémentaires ne rendrait pas le processeur plus rapide, bien que cela lui permettrait de traiter davantage dans le même temps.

La loi de Moore est une lecture très intéressante et informative. Cette citation en particulier est pertinente ici:

On pourrait également limiter les performances théoriques d'un "ordinateur portable ultime" plutôt pratique, d'une masse d'un kilogramme et d'un volume d'un litre. Ceci est fait en considérant la vitesse de la lumière, l’échelle quantique, la constante de gravitation et la constante de Boltzmann, donnant une performance de 5.4258 × 10 50 opérations logiques par seconde sur environ 10 31 bits.

Jredd
la source
2
Incidemment, les électrons se déplacent réellement très lentement ("vitesse de dérive"), de l'ordre de millimètres par seconde IIRC. Vous vous référez plus à la vitesse à laquelle le champ électrique se propage.
Bob
2
Je savais que je ne devais pas oser agir comme si je comprenais la physique sous le moindre regard. :) Merci de m'avoir corrigé / informé à ce sujet.
Jredd
En outre, les vitesses d'horloge réelles pour lesquelles la vitesse de propagation aura un effet significatif sont plus proches de 10+ GHz. Il existe d'autres raisons pour lesquelles les processeurs modernes préfèrent les noyaux multiples aux horloges plus hautes.
Bob
1

Longue histoire encore plus courte:

Nous n'avons vraiment pas besoin de processeurs plus rapides. En dehors de quelques utilisations hautement spécialisées *, le processeur ne constitue plus un goulot d'étranglement depuis des années - tous les éléments périphériques tels que la mémoire, le stockage et le réseau le font généralement attendre des millions de cycles d'horloge pendant lesquels il peut effectuer d'autres tâches. Un deuxième noyau peut faire plus «d’autres choses», donnant ainsi à l’utilisateur une impression de performance supérieure.

De nombreux appareils mobiles, ordinateurs portables, etc. vont sous le processeur pour une meilleure autonomie de la batterie et des températures plus fraîches. Peu incitatif à développer un cœur ARM à 3,5 GHz si votre client principal l’utilise à 1,3 GHz.

  • ces utilisations spécialisées n'achètent pas assez pour justifier le développement d'un cœur à 5 GHz. Ils ne se soucient pas non plus de la chaleur ou de l’énergie - achetez le produit le plus rapide disponible, overclockez-le et fixez-le sur un radiateur refroidi à l’eau de la taille d’un grille-pain.
peter
la source
1
Ce n'est pas une "perception", mais une "meilleure latence". Je pense que c'est l'un des principaux problèmes que nous avons; un fort débit mono-filé à tout prix. Les systèmes d'exploitation grand public ne sont pas encore orientés temps réel, ni fondamentalement orientés vers la concurrence ou le parallélisme.
Rob
@peter Vous faites valoir un très bon point et merci de l'avoir expliqué. C'est quelque chose dont je dois me souvenir en tant que programmeur. :) Cela reste cependant un problème secondaire pour cette question. Ma question était de savoir pourquoi nous ne pouvons pas obtenir des vitesses d'horloge plus rapides; votre réponse porte sur les raisons pour lesquelles nous n'en avons pas besoin actuellement.
Nathan Long
1
@NathanLong "ne peut pas" et "n'a pas besoin" sont liés. Vous ne pouvez pas obtenir des processeurs plus rapides car personne n'est disposé à investir le milliard ou les cinq nécessaires pour le développer (5 GHz repousse probablement les limites physiques de toute façon). Personne n'est disposé à investir car il n'y a pas de marché réaliste lorsque la vitesse des processeurs est à la baisse - certains ordinateurs de bureau de fabrication actuels appartiennent à la classe des 1,5 GHz (haut de gamme il y a 10 ans) car ils sont moins chers, plus frais et suffisamment rapides pour ce marché. segment.
peter
1

Réponse courte et simple:

Pourquoi ne pas passer d'un camion transportant des marchandises à 100 camions transportant 100 fois plus, il ne fait pas face aux mêmes contraintes physiques que de passer d'un camion conduisant à 100 mph à un camion conduisant à 10 000 mph?

Répondez à cette question et votre question recevra également une réponse. Le concept est à peu près le même.

Alex D
la source
1

Je pense qu'un autre facteur est la température. Si vous augmentez la fréquence d'horloge, la température à cœur augmente. Si vous ajoutez plus de noyaux, même si la consommation d'énergie augmente, celle-ci est répartie sur les noyaux, de sorte que la température reste la même (comme si vous ajoutiez deux liquides chauds, à la même température, l'un l'autre, la température reste la même. ).

Une autre raison est que l'augmentation de la fréquence d'horloge tend à augmenter la consommation d'énergie d'un carré du facteur d'augmentation de la fréquence (en fonction des autres obstacles rencontrés à un moment donné). Par conséquent, l'augmentation de la fréquence d'horloge augmente la consommation d'énergie d'un carré, tandis que l'ajout de cœurs augmente uniquement la linéairement.

Morty
la source
0

La réponse à la question de savoir pourquoi "l'ajout de plusieurs cœurs" ne se heurte pas aux mêmes limitations physiques que la question "accélérer le processeur" est la suivante: un système multicœur est confronté aux mêmes limitations qu'un processeur à un seul cœur. Nous sommes arrivés à un point où nous n'avons pas vraiment la possibilité d'accélérer la mise en œuvre d'un système central unique, nous l'avons donc fait pour pouvoir faire plus de choses en même temps. Les défis de taille et de coordination sont actuellement plus faciles à résoudre que d'aller plus vite. L'inconvénient est que si une tâche ne peut pas être décomposée, nous ne pourrons peut-être pas aller beaucoup plus vite qu'un système central unique.

Philip Tinney
la source
0

Vous ne pouvez pas rendre un processeur plus rapide en encombrant simplement plus de portes. En fin de compte, les instructions doivent être exécutées et chaque instruction nécessite plusieurs opérations de "commutation". Il existe des limites physiques fondamentales (mécanique quantique - principe de l'incertitude) qui rendent très difficile l'augmentation de la "vitesse d'horloge" d'un processeur au-delà de la vitesse des systèmes haut de gamme actuels.

Daniel R Hicks
la source