Question Pourquoi avons-nous des processeurs avec tous les cœurs à la même vitesse et non des combinaisons de vitesses différentes?


En général, si vous achetez un nouvel ordinateur, vous déterminez quel processeur vous souhaitez acheter en fonction de votre charge de travail. Les performances dans les jeux ont tendance à être déterminées par la vitesse du cœur unique, tandis que les applications telles que le montage vidéo sont déterminées par le nombre de cœurs.

En ce qui concerne ce qui est disponible sur le marché, tous les processeurs semblent avoir à peu près la même vitesse, les principales différences étant plus de threads ou plus de cœurs.

Par exemple:

  • Intel Core i5-7600K, fréquence de base 3,80 GHz, 4 cœurs, 4 threads
  • Intel Core i7-7700K, fréquence de base 4,20 GHz, 4 cœurs, 8 threads
  • AMD Ryzen 5 1600X, fréquence de base 3,60 GHz, 6 cœurs, 12 threads
  • AMD Ryzen 7 1800X, fréquence de base 3,60 GHz, 8 cœurs, 16 threads

Alors, pourquoi voyons-nous ce modèle de noyaux croissants avec tous les cœurs ayant la même vitesse d'horloge?

Pourquoi n'avons-nous pas de variantes avec des vitesses d'horloge différentes? Par exemple, deux «gros» noyaux et beaucoup de petits noyaux.

Par exemple, au lieu de, par exemple, quatre cœurs à 4,0 GHz (maximum de 16 GHz ~ 16 GHz maximum), qu'en est-il d'un processeur avec deux cœurs fonctionnant à 4,0 GHz et 4 cœurs fonctionnant à 2 GHz (soit 2x4,0 GHz)? + 4x2.0 GHz ~ 16 GHz maximum). La deuxième option ne serait-elle pas aussi efficace pour les charges de travail à un seul thread, mais potentiellement meilleure pour les charges de travail multithread?

Je pose cette question comme un point général - pas spécifiquement sur les processeurs que j'ai énumérés ci-dessus, ou sur une charge de travail spécifique. Je suis juste curieux de savoir pourquoi le modèle est tel qu'il est.


79
2018-06-24 13:25


origine


Il existe de nombreux mobiles avec des cœurs rapides et lents, et sur presque tous les serveurs multi-cœurs modernes, le cœur du processeur accélère en fonction de la charge, certains désactivant même les cœurs lorsqu'ils ne sont pas utilisés. Sur un ordinateur à usage général où vous ne concevez pas pour économiser de l'énergie, le fait d'avoir seulement deux types de cœurs (CPU et GPU) rend la plate-forme plus flexible. - eckes
Avant que le programmateur de thread puisse faire un choix intelligent sur le core à utiliser, il faudrait déterminer si un processus peut tirer parti de plusieurs cœurs. Faire cela de manière fiable serait très problématique et sujet aux erreurs. En particulier lorsque cela peut changer dynamiquement en fonction des besoins de l'application. Dans de nombreux cas, le planificateur devrait faire un choix sous-optimal lorsque le meilleur noyau était utilisé. Les noyaux identiques simplifient les choses, offrent une flexibilité maximale et offrent généralement les meilleures performances. - LMiller7
On ne peut raisonnablement pas dire que les vitesses d'horloge sont additives comme vous l'avez décrit. Avoir quatre cœurs fonctionnant à 4 Ghz ne signifie pas que vous avez un "total" de 16 GHz, ni que ce 16 Ghz pourrait être partitionné en 8 processeurs fonctionnant à 2 Ghz ou 16 processeurs fonctionnant à 1 GHz. - Bob Jarvis
La prémisse de la question est tout simplement fausse. Les processeurs modernes sont parfaitement capables d'exécuter des cœurs à des vitesses différentes - phuclv
Multi-core CPU: puis-je dire que j'ai un processeur 3x2,1 GHz = 6,3 GHz?, Comment calculer la vitesse d'horloge dans les processeurs multicœurs?, - phuclv


Réponses:


Ceci est connu comme multiprocesseur hétérogène (HMP) et est largement adopté par les appareils mobiles. Dans les appareils basés sur ARM qui implémentent gros petit, le processeur contient des cœurs avec différents profils de performances et de puissance, par ex. Certains cœurs fonctionnent rapidement mais consomment beaucoup d'énergie (architecture plus rapide et / ou horloges supérieures), tandis que d'autres sont économes en énergie mais lents (architecture plus lente et / ou horloges inférieures). Ceci est utile car la consommation d’énergie a tendance à augmenter de manière disproportionnée lorsque vous augmentez les performances après avoir dépassé un certain point. L'idée ici est d'obtenir des performances lorsque vous en avez besoin et de l'autonomie lorsque vous n'en avez pas.

Sur les plates-formes de bureau, la consommation d'énergie pose moins de problèmes, ce qui n'est pas vraiment nécessaire. La plupart des applications s'attendent à ce que chaque cœur ait des caractéristiques de performances similaires, et les processus de planification pour les systèmes HMP sont beaucoup plus complexes que la planification pour les systèmes SMP traditionnels. (Windows 10 est techniquement compatible avec HMP, mais il est principalement destiné aux appareils mobiles qui utilisent ARM big.LITTLE.)

De plus, la plupart des processeurs de bureau et portables sont ne pas limité thermiquement ou électriquement au point que certains noyaux doivent fonctionner plus vite que d'autres, même pour de courtes rafales. Nous avons fondamentalement frappé un mur sur la vitesse à laquelle nous pouvons faire des noyaux individuelsAinsi, remplacer certains cœurs par des cœurs plus lents ne permettra pas aux cœurs restants de fonctionner plus rapidement.

Bien qu'il existe quelques processeurs de bureau dotés d'un ou deux cœurs capables de fonctionner plus rapidement que les autres, cette fonctionnalité est actuellement limitée à certains processeurs Intel très haut de gamme (comme Turbo Boost Max Technology 3.0) et n'entraîne qu'un léger gain de performances. pour les cœurs qui peuvent fonctionner plus rapidement.


Bien qu'il soit certainement possible de concevoir un processeur x86 traditionnel avec des noyaux rapides et plus volumineux et des noyaux plus petits et plus lents pour optimiser les charges de travail fortement encombrées, cela compliquerait considérablement la conception du processeur.

Prendre un processeur hypothétique avec deux rapide Kaby Lake (Core 7ème génération) et huit cœurs lents Goldmont (Atom) noyaux. Vous auriez un total de 10 cœurs, et les charges de travail fortement optimisées, optimisées pour ce type de processeur, pourraient obtenir un gain de performances et d’efficacité sur un quad-core normal. Kaby Lake processeur. Cependant, les différents types de cœurs ont des niveaux de performances très différents, et les cœurs lents ne prennent même pas en charge certaines des instructions prises en charge par les cœurs rapides, telles que AVX. (ARM évite ce problème en exigeant que les deux cœurs LITTLE et Big prennent en charge les mêmes instructions.)

Encore une fois, la plupart des applications multithread basées sur Windows supposent que chaque cœur a le même niveau de performance ou presque, et peut exécuter les mêmes instructions. Ce type d’asymétrie se traduira probablement par des performances peu idéales, voire des pannes si il utilise des instructions non prises en charge par les cœurs lents. Bien qu'Intel puisse modifier les cœurs lents pour ajouter un support d'instruction avancé afin que tous les cœurs puissent exécuter toutes les instructions, cela ne résoudrait pas les problèmes de prise en charge logicielle des processeurs hétérogènes.

Une approche différente de la conception des applications, plus proche de ce que vous pensiez probablement dans votre question, utiliserait le GPU pour accélérer des portions d'applications très parallèles. Cela peut être fait en utilisant des API comme OpenCL et CUDA. En ce qui concerne une solution monopuce, AMD encourage la prise en charge matérielle de l’accélération GPU dans ses APU, qui associent un processeur traditionnel et un processeur graphique intégré hautes performances sur la même puce. Architecture de système hétérogène, même si cela n’a pas connu beaucoup d’adoption de la part de l’industrie en dehors de quelques applications spécialisées.


81
2018-06-25 03:11



Windows a déjà une notion d’applications, de processus en arrière-plan et de processus Windows. Donc, cela ne s'étend pas au niveau matériel? - Jamie
@Jamie Un processus "d'arrière-plan" reçoit des tranches de temps plus petites et est plus susceptible d'être interrompu. Windows 10 prend en compte, dans une certaine mesure, les systèmes HMP, bien qu’il n’y ait pas beaucoup d’informations à ce sujet. - Bob
Donc, je pense qu'après la modification, @bwDraco a pratiquement répondu à ma question. S'il y avait un processeur «mixte», il pourrait facilement prendre en charge le même jeu d'instructions s'il avait été construit de cette manière. Nous aurions donc besoin d'une sorte de programmateur pour choisir le bon noyau. Je pense qu'en réalité, les applications qui profitent de l'utilisation de nombreux petits noyaux bénéficieraient probablement encore plus de l'utilisation de cœurs très petits. Nous avons donc une accélération GPU. - Jamie
Notez que le cas du GPU ne négocie pas 2 gros cœurs pour 10 cœurs petits et lents, mais plutôt l’équivalent (très grossier) du trading de 2 cœurs de taille pour 1024 cœurs petits et lents. Massivement parallèle, pas seulement un peu plus parallèle. - Yakk
Intel pourrait probablement obtenir un noyau Goldmont pour exécuter des instructions AVX2 sans beaucoup de silicium supplémentaire (lentement, en décodant des paires d'opérations 128b). Knight's Landing (Xeon Phi) a des cœurs basés sur Silvermont avec AVX512, donc il n'est pas impossible de modifier Silvermont. Mais KNL ajoute une exécution désordonnée pour les instructions vectorielles, alors que Silver / Goldmont normal ne fait que OOO pour les nombres entiers, alors ils voudraient probablement le concevoir plus près de Goldmont que de KNL. Quoi qu’il en soit, les insn sets ne sont pas un réel problème. C'est le soutien du système d'exploitation et les petits avantages qui constituent les véritables obstacles à la dépense de la zone de production sur un cœur à faible consommation. - Peter Cordes


Ce que vous demandez, c'est pourquoi les systèmes actuels utilisent Multitraitement symétrique plutôt que Multiprocessing asymétrique.

Le multiprocesseur asymétrique était utilisé autrefois, quand un ordinateur était énorme et logé sur plusieurs unités.

Les processeurs modernes sont convertis en une seule unité, dans un seul dé, où il est beaucoup plus simple pour mélanger des processeurs de différents types, car ils partagent tous le même bus et la même RAM.

Il y a aussi la contrainte de l'horloge qui régit les cycles du processeur et Accès RAM. Cela deviendra impossible lors du mélange de processeurs de différents les vitesses Des ordinateurs expérimentaux sans horloge existaient et étaient même jolis rapide, mais la complexité du matériel moderne a imposé un plus simple architecture.

Par exemple, les cœurs Sandy Bridge et Ivy Bridge ne peuvent pas fonctionner à des vitesses différentes en même temps, car le bus de cache L3 fonctionne à la même vitesse que les cœurs. Pour éviter les problèmes de synchronisation, ils doivent tous fonctionner à cette vitesse. ou être garé / éteint (lien: Architecture de Sandy Bridge d'Intel exposée). (Aussi vérifié dans les commentaires ci-dessous pour Skylake.)

[EDIT] Certaines personnes se sont trompés sur ma réponse pour dire que mélanger les CPU est impossible. Pour leur bénéfice, je déclare: Mélange de différents processeurs n'est pas au-delà de la technologie d'aujourd'hui, mais n'est pas fait - "pourquoi pas" est la question. Comme il a été répondu ci-dessus, cela serait techniquement compliqué, donc plus coûteux et pour un gain financier insuffisant ou nul, les fabricants ne sont pas intéressés.

Voici les réponses à quelques commentaires ci-dessous:

Turbo Boost modifie les vitesses du processeur afin qu'ils pouvez être changé

Turbo Boost est fait en accélérant l'horloge et en changeant certains multiplicateurs, ce qui est exactement ce que les gens font en overclocking, sauf que le matériel le fait pour nous L'horloge est partagée entre les cœurs sur le même processeur, Ainsi, cela accélère uniformément la totalité du processeur et de tous ses cœurs.

Certains téléphones ont plus d'un processeur à des vitesses différentes

Ces téléphones ont généralement un microprogramme et une pile de logiciels personnalisés associés à chaque CPU, plus comme deux processeurs séparés (ou comme CPU et GPU), et ils manquent d'un vue unique de la mémoire système. Cette complexité est difficile à programmer et donc Le multitraitement asymétrique est resté dans le domaine mobile, car il nécessite un développement logiciel de bas niveau proche du matériel, qui est évité par OS de bureau à usage général. C'est la raison pour laquelle de telles configurations ne sont pas présentes sur le PC (sauf pour CPU / GPU si on étire suffisamment la définition).

Mon serveur avec 2x Xeon E5-2670 v3 (12 cœurs avec HT) a actuellement des cœurs à 1,3 GHz, 1,5 GHz, 1,6 GHz, 2,2 GHz, 2,5 GHz, 2,7 GHz, 2,8 GHz et 2,9 GHz.

Un noyau est soit actif soit inactif. Tous les cœurs actifs simultanément fonctionnent à la même fréquence. Ce que vous voyez n'est qu'un artefact de timing ou de moyenne. J'ai également noté que Windows ne stocke pas de noyau pendant longtemps, mais plutôt séparément parcs / unparks tous les cœurs beaucoup plus rapidement que le taux de rafraîchissement de moniteur de ressources, mais je ne connais pas la raison de ce comportement qui est probablement derrière la remarque ci-dessus.

Les processeurs Intel Haswell ont des régulateurs de tension intégrés qui permettent des tensions et des fréquences individuelles pour chaque cœur

Les régulateurs de tension individuels diffèrent de la vitesse d'horloge. Tous les cœurs ne sont pas identiques - certains sont plus rapides. Les cœurs plus rapides sont légèrement moins puissants, ce qui crée une marge pour augmenter la puissance des cœurs plus faibles. Les régulateurs de tension de base seront réglés aussi bas que possible afin de maintenir la vitesse d'horloge actuelle. L'unité de contrôle de l'alimentation de la CPU régule les tensions et remplace les requêtes du système d'exploitation lorsque nécessaire pour des noyaux de qualité différente. Résumé: Les régulateurs individuels permettent à tous les cœurs de fonctionner de manière économique à la même vitesse d'horloge, et non pour définir des vitesses de base individuelles


66
2018-06-24 13:57



Ah! plus mshorter et au point. +1 - Hennes
@harrymc il existe des blocs de synchronisation qui le gèrent parfaitement; La DRAM fonctionne plus lentement que la vitesse de base, et vous pouvez avoir des cœurs Intel fonctionnant à différentes vitesses de manière dynamique sur la même puce. - pjc50
Les processeurs Intel Core-series fonctionnent à des vitesses différentes sur le même die, tout le temps. - Nick T
La seule existence d'architectures big.LITTLE et d'une amplification d'horloge indépendante du cœur prouve que vous avez tort. Le multitraitement hétérogène est courant. Il pouvez être fait, ça est fait dans les téléphones, mais pour quelque raison pas dans les ordinateurs de bureau. - Agent_L
@Agent_L: La raison est la complexité. Les processeurs de bureau sont déjà assez coûteux. Je répète donc: tout est possible, mais la véritable question est de savoir pourquoi cela n’a pas été fait, et non pas si cela peut être fait. Ne m'attaquez pas comme si j'avais prétendu que c'était impossible - tout ce que je dis, c'est que c'est trop compliqué et trop coûteux et que le gain est trop faible pour intéresser les fabricants. - harrymc


Pourquoi n'avons-nous pas de variantes avec des vitesses d'horloge différentes? c'est à dire. 2 gros noyaux et beaucoup de petits noyaux.

Il est possible que le téléphone dans votre poche arbore exactement cet arrangement - le ARM big.LITTLE fonctionne exactement comme vous l'avez décrit. Ici, il n'y a même pas une différence de vitesse d'horloge, ils peuvent être des types de cœur complètement différents - généralement, les cadences plus lentes sont même plus "bêtes" (pas d'exécution en dehors du système et autres optimisations de CPU).

C’est une bonne idée d’économiser de la batterie, mais elle a ses propres inconvénients. la comptabilité pour déplacer des choses entre différents processeurs est plus compliquée, la communication avec le reste des périphériques est plus compliquée et, plus important encore, pour utiliser efficacement ces cœurs, le planificateur de tâches doit être extrêmement intelligent (et souvent "deviner") .

La solution idéale consiste à exécuter des tâches d'arrière-plan non critiques sur le temps ou des tâches interactives relativement petites sur les "petits" cœurs et à ne réveiller les "gros" que pour des calculs longs et volumineux (où le temps manger plus de batterie) ou pour des tâches interactives de taille moyenne, où l'utilisateur ressent de la lenteur sur les petits cœurs.

Cependant, le planificateur dispose d'informations limitées sur le type de travail que chaque tâche peut exécuter et doit recourir à des méthodes heuristiques (ou des informations externes, telles que forcer un masque d'affinité sur une tâche donnée) pour décider où les planifier. Si vous vous trompez, vous risquez de perdre beaucoup de temps / d’exploitation pour exécuter une tâche sur un cœur lent et donner une mauvaise expérience utilisateur, ou utiliser les «gros» cœurs pour des tâches peu prioritaires et gaspiller ainsi de l’énergie / les voler des tâches qui en auraient besoin.

De plus, sur un système de multiprocesseur asymétrique, il est généralement plus coûteux de migrer des tâches vers un autre noyau que sur un système SMP, de sorte que le planificateur doit généralement faire une première estimation au lieu d'essayer un noyau libre aléatoire. ça autour plus tard.


Au lieu de cela, le choix d’Intel est d’avoir un nombre inférieur de cœurs intelligents et rapides identiques, mais avec une mise à l’échelle de fréquence très agressive. Lorsque le processeur est occupé, il accélère rapidement jusqu'à la vitesse d'horloge maximale, effectue le travail le plus rapidement possible, puis le réduit pour revenir au mode de consommation d'énergie le plus faible. Cela ne fait pas peser une charge particulière sur le planificateur et évite les mauvais scénarios décrits ci-dessus. Bien sûr, même en mode basse horloge, ces cœurs sont "intelligents", donc ils consommeront probablement plus que les cœurs big.LITTLE "stupides".


47
2018-06-24 19:12



L'heuristique devrait être assez simple. Tout changement de tâche involontaire (utilisation du délai) est une indication que le processeur lent est inapproprié pour la tâche. Une très faible utilisation et tous les commutateurs de tâches volontaires indiquent que la tâche pourrait être déplacée vers le cpu lent. - R..
un autre problème est que 4 coeurs stupides de 2 GHz peuvent prendre plus de taille de puce que 2 cœurs intelligents de 4 GHz, ou ils peuvent être plus petits et prendre beaucoup moins de puissance que les cœurs de 4 GHz mais aussi beaucoup plus lents - phuclv
@R .: en ligne de principe Je suis d'accord avec vous, mais même en prenant en charge un support de base pour le programmateur, j'ai vu un noyau ridicule se bousculer sur une carte ARM que j'utilisais, donc il doit y avoir autre chose. En outre, la plupart des logiciels multithread "classiques" sont conçus avec SMP en tête, de sorte qu'il n'est pas inhabituel de voir des pools de threads aussi gros que le nombre total de cœurs, avec des tâches glissant sur les cœurs lents. - Matteo Italia
@Ramhound: une partie 120W à 10 cœurs a un budget de puissance de 12W par cœur (sauf en mode turbo mono-cœur). C'est pourquoi les horloges à cœur unique les plus élevées se trouvent dans les parties à quatre cœurs, par ex. Intel's i7-6700k dispose d'un budget de 91 W pour 4 cœurs: 22,75 W par cœur soutenu avec tous les cœurs actifs (à 4,0 GHz même avec une charge de travail AVX2 + FMA telle que Prime95). C'est également pour cette raison que la marge Turbo sur un seul cœur ne dépasse pas 0,2 GHz, par rapport à un Broadwell E5-2699v4 à 22 cœurs avec une base à 2,2 GHz à 145 W et un turbo à 3,6 GHz. - Peter Cordes
@Ramhound: ajouté une réponse qui se développe à ce sujet. Un Xeon à plusieurs cœurs semble être exactement ce que recherche l'OP: opérer autant de cœurs à faible consommation, ou dépenser beaucoup d'énergie en exécutant un seul thread rapide lorsque cela est possible (turbo). - Peter Cordes


La performance dans les jeux a tendance à être déterminée par la vitesse de base,

Dans le passé (jeux de l'ère DOS): Correct.
Ces jours-ci, ce n'est plus vrai. De nombreux jeux modernes sont threadés et bénéficient de plusieurs cœurs. Certains jeux sont déjà assez satisfaits avec 4 cœurs et ce nombre semble augmenter avec le temps.

alors que les applications comme l'édition vidéo sont déterminées par le nombre de cœurs.

Sorte de vrai

Nombre de cœurs * fois la vitesse du noyau * efficacité.
Si vous comparez un seul noyau identique à un ensemble de cœurs identiques, vous êtes généralement correct.

En termes de ce qui est disponible sur le marché - tous les processeurs semblent avoir   à peu près la même vitesse avec les principales différences étant plus de threads ou   plus de noyaux. Par exemple:

Intel Core i5 7600k, Base Freq 3.80 GHz, 4 cœurs      Intel Core i7 7700k, Base Freq 4.20 GHz, 4 cœurs, 8 threads      AMD Ryzen 1600x, Base Freq 3.60 GHz, 6 cœurs, 12 fils      AMD Ryzen 1800x, Base Freq 3.60 GHz, 8 coeurs, 16 threads

Comparer différentes architectures est dangereux, mais bon ...

Alors, pourquoi voyons-nous ce modèle de noyaux croissants avec tous les noyaux ayant   la même vitesse d'horloge?

En partie parce que nous avons rencontré une barrière. L'augmentation de la vitesse d'horloge signifie davantage de puissance nécessaire et plus de chaleur générée. Plus de chaleur signifiait encore plus de puissance nécessaire. Nous avons essayé de cette façon, le résultat a été l’horrible pentium 4. Chaud et gourmand. Difficile de refroidir Et pas même plus rapide que le Pentium-M intelligemment conçu (un P4 à 3,0 GHz était à peu près aussi rapide qu'un P-mob à 1,7 GHz).

Depuis lors, nous avons pour la plupart abandonné la vitesse d'horloge et, au lieu de cela, nous construisons des solutions plus intelligentes. Une partie de cela consistait à utiliser plusieurs cœurs sur une vitesse d'horloge brute.

Par exemple. Un seul cœur de 4 GHz peut consommer autant de puissance et générer autant de chaleur que trois cœurs de 2 GHz. Si votre logiciel peut utiliser plusieurs cœurs, il sera beaucoup plus rapide.

Tous les logiciels ne peuvent pas le faire, mais les logiciels modernes peuvent généralement le faire.

Ce qui explique en partie pourquoi nous avons des puces avec plusieurs cœurs et pourquoi nous vendons des puces avec un nombre de cœurs différent.

En ce qui concerne la vitesse d'horloge, je pense pouvoir identifier trois points:

  • Les processeurs à faible puissance sont utiles dans de nombreux cas où la vitesse brute n’est pas nécessaire. Par exemple. Contrôleurs de domaine, configurations NAS, ... Pour ceux-ci, nous avons des processeurs à basse fréquence. Parfois même avec plus de cœurs (par exemple, un processeur 8x à faible vitesse est utile pour un serveur Web).
  • Pour le reste, nous sommes habituellement près de la fréquence maximale que nous pouvons faire sans que notre design actuel ne devienne trop chaud. (disons 3 à 4 GHz avec les conceptions actuelles).
  • Et en plus de cela, nous faisons du binning. Tous les processeurs ne sont pas générés de manière égale. Certains processeurs ont un score médiocre ou une partie de leurs puces, ont des composants désactivés et sont vendus sous un autre nom.

L'exemple classique était une puce AMD à 4 cœurs. Si un cœur était cassé, il était désactivé et vendu comme une puce à 3 coeurs. Lorsque la demande pour ces 3 cœurs était élevée, même 4 cœurs ont été vendus en tant que version 3 cœurs et, avec le logiciel approprié, vous pouvez réactiver le 4ème cœur.

Et ce n'est pas seulement fait avec le nombre de cœurs, cela affecte également la vitesse. Certaines puces sont plus chaudes que d’autres. Trop chaud et vendez-le comme un processeur moins rapide (où une fréquence plus basse signifie aussi moins de chaleur générée).

Et puis, il y a la production et le marketing, et cela va encore plus loin.

Pourquoi n'avons-nous pas de variantes avec des vitesses d'horloge différentes? c'est à dire. 2 gros noyaux   et beaucoup de petits noyaux.

Nous faisons. Dans les endroits où cela a du sens (par exemple, les téléphones portables), nous avons souvent un SoC avec un processeur central lent (faible consommation) et quelques cœurs plus rapides. Cependant, sur le PC de bureau typique, cela n'est pas fait. Cela rendrait l'installation beaucoup plus complexe, plus coûteuse et il n'y a pas de batterie à drainer.


14
2018-06-24 13:59



Comme je l'ai souligné - "Je pose cette question comme un point général - pas spécifiquement à propos de ces processeurs que j'ai énumérés ci-dessus", et il y avait une raison pour laquelle je donnais deux exemples de chaque architecture. Si nous traitons les deux scénarios comme 1. tous les gros noyaux et 2. deux gros et deux petits - alors je pense tous les points que vous mentionnez s'appliquent aux deux cas - c.-à-d. une vitesse maxi à cœur unique théorique, le binning des puces, le downclocking lorsqu'il n'est pas utilisé. - Jamie
Un seul noyau de vitesse maximale n'est pas si intéressant quand on ne le choisit pas. Les ordonnanceurs devront être mis à jour pour préférer le (s) noyau (s) rapide (s). - Hennes


Pourquoi n'avons-nous pas de variantes avec des vitesses d'horloge différentes? Par exemple, deux «gros» noyaux et beaucoup de petits noyaux.

À moins que nous ne soyons extrêmement préoccupés par la consommation d’énergie, cela n’a aucun sens d’accepter tous les coûts associés à un noyau supplémentaire et de ne pas obtenir autant de performances que possible. La vitesse d'horloge maximale est largement déterminée par le processus de fabrication, et la puce entière est fabriquée par le même processus. Alors, quel serait l'avantage de rendre certains des noyaux plus lents que le processus de fabrication pris en charge?

Nous avons déjà des noyaux qui peuvent ralentir pour économiser de l'énergie. Quel serait l'intérêt de limiter leurs performances maximales?


10
2018-06-26 04:31



C'est ce que je pensais. Pourquoi utiliser intentionnellement des composants inférieurs alors qu'ils pourraient tous être des élites? +1. - MPW
@MPW Le choix n’est pas de créer un gros noyau puis de le neutraliser, c’est entre gros et quelques gros cœurs. Étant donné que vous avez deux scénarios concurrents (performances sur un seul thread et performances sur plusieurs threads), pourquoi ne pas optimiser les deux? Savons-nous que vous ne pouvez pas fabriquer une puce avec quelques gros et de nombreux petits cœurs? - Jamie
@Jamie Vous pourriez fabriquer une puce avec quelques gros et de nombreux petits noyaux. Mais les noyaux plus petits ne fonctionneraient pas à une vitesse d'horloge inférieure. - David Schwartz
Ils le feraient s'ils étaient conçus de cette façon ... La question est de savoir pourquoi ils ne sont pas conçus de cette façon à partir de rien, ne prennent pas un processus de fabrication existant et le neutralisent. - Jamie
@Jamie Je ne comprends pas ce que vous dites. L'ensemble du processeur doit être fabriqué avec le même processus de fabrication, et la vitesse d'horloge maximale est en grande partie une caractéristique des processus de fabrication. Les cœurs nécessitant une vitesse d'horloge inférieure au même niveau de fabrication seraient généralement plus complexe et prend plus d'espace, sinon pourquoi exigeraient-ils une vitesse d'horloge inférieure? - David Schwartz


Pourquoi n'avons-nous pas de variantes avec des vitesses d'horloge différentes? Par exemple, deux «gros» noyaux et beaucoup de petits noyaux.

De nos jours, les vitesses nominales ne sont pas trop importantes pour la plupart des gros processeurs, car ils ont tous la capacité de se synchroniser. Vous demandez si vous pouvez ou non synchroniser différents noyaux indépendamment.

Je suis un peu surpris par beaucoup d'autres réponses. Les processeurs modernes peuvent et doivent le faire. Vous pouvez tester cela, par exemple, en ouvrant CPU-Z sur un smartphone - mon Google Pixel est parfaitement capable d'exécuter différents cœurs à différentes vitesses:

Il est nominalement 2.15 Ghz, mais deux cœurs sont à 1.593 Ghz et deux à 1.132 Ghz.

En fait, depuis 2009, les processeurs Intel traditionnels ont la logique d'augmenter les cœurs individuels tout en sous-calibrant les autres cœurs, ce qui permet d'améliorer les performances du cœur unique tout en respectant un budget TDP: http://www.anandtech.com/show/2832/4

Les nouveaux processeurs Intel avec "Favored Core" (un terme commercial Intel) ont chacun leur cœur caractérisé en usine, les cœurs les plus rapides pouvant augmenter considérablement les performances: http://www.anandtech.com/show/11550/the-intel-skylakex-review-core-i9-7900x-i7-7820x-and-i7-7800x-tested/7

Les puces d'AMD Bulldozer avaient une version primitive de ceci: http://www.anandtech.com/show/4955/the-bulldozer-review-amd-fx8150-tested/4

Les nouvelles puces Ryzen d'AMD Probablement avoir ceci aussi, bien que ce ne soit pas explicitement indiqué ici: http://www.anandtech.com/show/11170/the-amd-zen-and-ryzen-7-review-a-deep-dive-on-1800x-1700x-and-1700/11


9
2018-06-25 02:42



Vous répondez à une question différente. La question concerne beaucoup de gros noyaux par rapport à quelques gros noyaux et à de nombreux petits noyaux - les avantages des deux scénarios. Dans les deux cas, vous pouvez augmenter ou diminuer la demande en fonction de la demande ou augmenter le nombre de cœurs. - Jamie
Ce n'est pas comme ça que je lis la question. La question ne mentionne pas les différents noyaux architecturaux, bien qu’ils utilisent les mots "gros" et "petit". Il se concentre exclusivement sur la vitesse d'horloge. - Grant Wu


Sur un système moderne, vous avez souvent faire avoir tous les cœurs fonctionnant à des vitesses différentes. Réduire un noyau peu utilisé réduit la consommation d'énergie et la puissance thermique, ce qui est une bonne chose, et des fonctionnalités telles que «turbo boost» permettent à un ou deux cœurs de fonctionner beaucoup plus vite tant que les autres cœurs sont inactifs et donc et la production de chaleur de l'ensemble paquet ne va pas trop haut. Dans le cas d'une puce avec une telle fonctionnalité, la vitesse que vous voyez dans la liste est la vitesse la plus élevée que vous pouvez obtenir avec tous les cœurs à la fois. Et pourquoi tous les cœurs auraient-ils la même vitesse maximale? Eh bien, ils sont tous de conception identique, sur la même puce physique, avec le même processus de semi-conducteur, alors pourquoi devraient-ils être différents?

La raison pour laquelle tous les cœurs sont identiques est que cela simplifie l'exécution d'un thread s'exécutant sur un cœur à un moment donné sur un autre noyau. Comme mentionné ailleurs, il existe des puces couramment utilisées ne pas suivez ce principe de noyaux identiques, à savoir les processeurs ARM "big.LITTLE". Bien que dans mon esprit la différence la plus importante entre les "gros" et les "petits" cœurs ne soit pas la vitesse d'horloge (les "gros" cœurs ont tendance à être plus sophistiqués, plus larges et plus spéculatifs). la consommation d'énergie, tandis que les "petits" cœurs se rapprochent des racines à un seul problème, dans l'ordre et à faible puissance d'ARM, étant donné qu'ils sont différents sur la même puce, ils auront également des vitesses d'horloge maximales différentes.

Et en allant plus loin dans le domaine de l'informatique hétérogène, il est également courant de voir les cœurs «CPU» et «GPU» intégrés dans la même puce. Ceux-ci ont des conceptions complètement différentes, exécutent des jeux d'instructions différents, sont adressés différemment et seront généralement synchronisés différemment.


8
2018-06-26 04:14