Page d'accueil » comment » Pourquoi les cœurs de processeur ont-ils tous la même vitesse au lieu de différents?

    Pourquoi les cœurs de processeur ont-ils tous la même vitesse au lieu de différents?

    Si vous avez déjà fait beaucoup de comparaisons pour un nouveau processeur, vous avez peut-être remarqué que tous les cœurs semblent avoir la vitesse plutôt qu'une combinaison de différents. Pourquoi donc? Le message Q & R du SuperUser d'aujourd'hui répond à une question d'un lecteur curieux.

    La séance de questions et réponses d'aujourd'hui nous est offerte par SuperUser, une sous-division de Stack Exchange, un groupe de sites Web de questions-réponses dirigé par la communauté..

    La question

    Lecteur superutilisateur Jamie veut savoir pourquoi les cœurs de processeur ont tous la même vitesse au lieu de différents:

    En général, si vous achetez un nouvel ordinateur, vous déterminez le processeur à acheter en fonction de la charge de travail attendue de l'ordinateur. Les performances dans les jeux vidéo ont tendance à être déterminées par la vitesse d'un seul cœur, alors que les applications telles que le montage vidéo sont déterminées par le nombre de cœurs. En termes de ce qui est disponible sur le marché, tous les processeurs semblent avoir à peu près la même vitesse, les différences principales étant plus de threads ou plus de cœurs..

    Par exemple:

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

    Pourquoi voyons-nous ce modèle d'augmentation du nombre de cœurs alors que tous les cœurs ont la même vitesse d'horloge? Pourquoi n'y a-t-il 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 quatre cœurs à 4,0 GHz (4 × 4 GHz, 16 GHz au maximum), qu’en est-il d’un processeur à deux cœurs à 4,0 GHz et à quatre cœurs à 2,0 GHz (2 × 4,0 GHz + 4 × 2,0)? GHz, 16 GHz maximum)? La deuxième option serait-elle aussi efficace pour les charges de travail à un seul thread, mais potentiellement meilleure pour les charges de travail à plusieurs threads?

    Je pose cette question à titre de question générale et pas spécifiquement en ce qui concerne les processeurs énumérés ci-dessus ou à propos d’une charge de travail spécifique. Je suis juste curieux de savoir pourquoi le motif est ce qu'il est.

    Pourquoi les cœurs de processeur ont-ils tous la même vitesse plutôt que des cœurs différents??

    La réponse

    Le contributeur de SuperUser, bwDraco, a la solution pour nous:

    Ceci est connu sous le nom de multi-traitement hétérogène (HMP) et est largement adopté par les appareils mobiles. Dans les dispositifs basés sur ARM qui implémentent big.LITTLE, le processeur contient des cœurs avec des profils de performance et de puissance différents, c’est-à-dire que certains fonctionnent rapidement mais consomment beaucoup de puissance (architecture plus rapide et / ou des horloges plus élevées), 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 une fois que vous avez dépassé un certain point. L'idée ici est d'obtenir des performances lorsque vous en avez besoin et la vie de la batterie lorsque vous ne l'utilisez pas..

    Sur les plates-formes de bureau, la consommation d'énergie est beaucoup moins un problème, ce n'est donc pas vraiment nécessaire. La plupart des applications s'attendent à ce que chaque cœur présente des caractéristiques de performance similaires, et les processus de planification des systèmes HMP sont beaucoup plus complexes que ceux des systèmes SMP (multi-processing) symétriques traditionnels (techniquement, Windows 10 prend en charge le système HMP, mais il est principalement destiné aux systèmes mobiles. appareils qui utilisent ARM big.LITTLE).

    De plus, la plupart des processeurs pour ordinateurs de bureau et ordinateurs portables actuels ne sont pas limités, du point de vue thermique ou électrique, au point où certains cœurs doivent fonctionner plus rapidement que d'autres, même pour de brèves rafales. La rapidité avec laquelle nous pouvons créer des noyaux individuels est en grande partie bloquée. Par conséquent, le remplacement de certains noyaux par des plus lents ne permettra pas aux noyaux restants de fonctionner plus rapidement..

    Bien que certains processeurs de bureau aient un ou deux cœurs capables de fonctionner plus rapidement que les autres, cette capacité est actuellement limitée à certains processeurs Intel très haut de gamme (connue sous le nom de Turbo Boost Max Technology 3.0) et ne représente qu'un léger gain de temps. performances pour les cœurs qui peuvent courir plus vite.

    Bien qu'il soit certainement possible de concevoir un processeur x86 traditionnel avec des cœurs volumineux et rapides et des cœurs plus lents et plus lents à optimiser pour les charges de travail fortement threadées, cela ajouterait une complexité considérable à la conception du processeur et les applications ne le prendraient probablement pas en charge..

    Prenons un processeur hypothétique avec deux noyaux rapides de Kaby Lake (7ème génération) et huit noyaux lents de Goldmont (Atom). Vous disposeriez d'un total de 10 cœurs et les charges de travail fortement threadées optimisées pour ce type de processeur pourraient enregistrer un gain de performances et d'efficacité par rapport à un processeur Kaby Lake quadricœur normal. Cependant, les différents types de cœurs ont des niveaux de performance 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, comme AVX (ARM évite ce problème en exigeant que les grands et les petits cœurs supportent les mêmes instructions. ).

    Encore une fois, la plupart des applications multithreads basées sur Windows partent du principe 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 est donc susceptible d’entraîner des performances non optimales, voire se bloque s’il utilise des instructions qui ne sont pas supportées par les noyaux plus lents. Bien qu'Intel puisse modifier les cœurs lents pour ajouter une prise en charge des instructions avancées afin que tous les cœurs puissent exécuter toutes les instructions, cela ne résoudrait pas les problèmes liés à la prise en charge logicielle des processeurs hétérogènes..

    Une approche différente de la conception des applications, plus proche de celle à laquelle vous pensez probablement dans votre question, utiliserait le processeur graphique pour accélérer les parties très parallèles des applications. Cela peut être fait en utilisant des API comme OpenCL et CUDA. En ce qui concerne une solution à puce unique, AMD favorise la prise en charge matérielle de l'accélération GPU de ses APU, qui associe un processeur traditionnel et un processeur graphique intégré hautes performances dans la même puce, tout comme l'architecture de système hétérogène, même si cela n'a pas été très bien accueilli par l'industrie. de quelques applications spécialisées.


    Avez-vous quelque chose à ajouter à l'explication? Sound off dans les commentaires. Voulez-vous lire plus de réponses d'autres utilisateurs de Stack Exchange doués en technologie? Découvrez le fil de discussion complet ici.

    Crédit d'image: Mirko Waltermann (Flickr)