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):
Crédit à Idontcare
Nous pouvons le visualiser dans le graphique suivant:
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.