122 votes

Comment un processeur peut-il être rendu plus rapide par une mise à jour "logicielle" ?

Les nouveaux processeurs Ryzen d'AMD sont sur le marché et, malheureusement, ils semblent manquer de puissance pour les jeux. Les processeurs Intel sont évidemment toujours plus rapides pour les jeux. Bien sûr, les gens n'étaient pas d'accord et AMD a fait une déclaration disant qu'ils mettent à jour le firmware ou le logiciel pour accélérer Ryzen pour les jeux.

Corrigez-moi si je me trompe mais le processeur doit avoir un firmware statique pour être compatible avec la norme x64 ? Si oui, AMD ne devrait-il pas optimiser les jeux (logiciels) pour ses processeurs, ce qui est évidemment impossible ? Qu'est-ce qui se passe ici pour dire de telles choses s'il semble que c'est impossible en voyant les conditions sous-jacentes ?

Mais je peux me tromper (je l'espère), alors la question est la suivante :

Est-il possible d'améliorer la vitesse d'un processeur sans modifier le matériel sous-jacent ? Si c'est possible, comment cela se fait-il ? Existe-t-il un logiciel autre que le micrologiciel du processeur ?

72 votes

Vous pouvez rechercher le terme "microcode" sur Google.

16 votes

10 votes

Le micrologiciel peut être bon ou mauvais, ou simplement ne pas convenir à l'application. Le x86 ne définit pas la synchronisation des instructions, de sorte que la mise à jour du micrologiciel (microcode) pour améliorer la synchronisation des instructions ne rompt pas la compatibilité avec le x86. Il y a quelques raisons potentielles pour lesquelles cela est possible et pourrait être nécessaire : 1) le microcode initial est un travail rapide et n'est pas optimal ; 2) le microcode initial fonctionne bien lorsque le programme est compilé pour Ryzen, mais pas si le programme est compilé pour x86 générique ou pour le processeur d'intel, ce qui est le cas de la majorité des logiciels existants.

123voto

Ale..chenski Points 11543

Les processeurs modernes sont beaucoup plus compliqués qu'on ne le pense. Ils sont incroyablement compliqués, presque au-delà de la compréhension d'une seule personne. En développant une courte remarque de "horta", on pourrait avoir tout ce qui suit :

  1. Pour commencer, presque tout le matériel interne est configurable dans une large mesure. Il existe des milliers et des milliers de registres de configuration avec des milliards de bits individuels qui doivent être activés pour qu'un processeur fonctionne. Toutes les couches d'interaction entre le CPU et le cache ont des pipelines configurables, et divers délais ont évidemment un effet sur les performances globales.

  2. Il existe des centaines de fonctionnalités avancées mises en place par les architectes et que les ingénieurs n'ont pas eu le temps de valider, de sorte que des centaines de fonctionnalités sont désactivées ou mises en configuration de sécurité avec "morceaux de poulet" . Mais elles peuvent être améliorées et activées si elles sont jugées fonctionnelles et utiles. Ces fonctions d'amélioration sont généralement validées en profondeur au fil du temps, et peuvent être progressivement activées au cours de la vie d'un processeur par divers correctifs de microcode.

  3. Tous les processeurs récents possèdent plusieurs unités internes contrôlées par des microprocesseurs indépendants qui sont intégrés dans la puce du processeur x86. L'unité P est l'une de celles qui ont fait surface publiquement. Les processeurs modernes ne peuvent pas fonctionner sans une gestion agressive de l'énergie, sinon ils fondent. Cependant, une gestion approfondie de l'alimentation est en contradiction avec une politique agressive d'horloge et de tension d'entrée-sortie, et les changements de cette politique affectent fortement les performances globales du système. Tous les détails sont contrôlés par la P-Unit, et peuvent être optimisés/réglés en chargeant les paramètres suivants un autre patch de microcode, comme répondu ici.

  4. De nombreux autres aspects de l'interconnexion interne sont contrôlés par divers processeurs intégrés supplémentaires, qui peuvent être corrigés en y chargeant des correctifs de microcode, ou en mettant à niveau le BIOS s'il a accès à ces ressources de configuration.

En bref, si le matériel de l'unité centrale est effectivement câblé, la configuration dudit matériel définit en grande partie ses performances et peut être réglée pour améliorer les performances du système au moyen de mises à jour du BIOS et de correctifs de microcode intégrés.

0 votes

Je ne sais pas quelle réponse je dois accepter. La réponse de @bwDraco est bonne, mais la vôtre correspond davantage à la réponse réelle, même si sa réponse fournit des informations spécifiques au problème.

0 votes

Vous devriez accepter este répondre. Vous venez de l'électronique, vous semblez donc vous intéresser à l'électronique. Firmware de l'unité centrale (pas un changement de Windows). @ArthurP.R.

3 votes

@ArthurP.R. Si les spécialistes du benchmarking ont constaté que Windows ne planifie pas correctement les tâches sur les processeurs multithreads (traite les threads comme des cœurs indépendants), cela signifie qu'AMD a, d'une manière ou d'une autre, foiré les descripteurs de processeurs, ce qui fait que Microsoft ne peut pas les comprendre. Si les descripteurs peuvent être adaptés aux normes Microsoft par un mécanisme de mise à jour, il s'agit alors d'une solution de premier ordre facile à mettre en œuvre. Et comme vous avez posé une question d'ordre général, ceci y répond :-)

9voto

random Points 1

http://wccftech.com/amd-ryzen-launch-aftermath-gaming-performance-amd-response/

1) Les premiers BIOS de cartes mères avaient certainement des problèmes : ils désactivaient désactivant des fonctions non pertinentes éteignait des cœurs. Le réglage des overclocks de la mémoire sur certaines cartes mères désactivaient le boost. Certaines révisions de BIOS produisaient des performances universellement réduites.

2) Ryzen bénéficie de la désactivation des High Precision Event Timers (HPET). La résolution de la minuterie HPET peut provoquer un effet d'observateur qui peut soustraire des performances. Il s'agit d'une option du BIOS, ou d'une fonction qui peut être désactivée à partir de la commande Windows Shell.

3) Ryzen bénéficie de l'activation du profil de puissance Haute Performance. Ce profil a priorité sur le stationnement du cœur. Finalement, nous aurons un pilote qui qui permettra aux gens de rester équilibrés et de désactiver le core parking de toute façon. Les joueurs font cela depuis un moment aussi. Je me suis mal exprimé, là. Je veux clarifier l'avantage : le mode haute performance permet au CPU de mettre à jour sa tension/vitesse d'horloge en 1ms, contre 30ms en mode équilibré. équilibré. C'est ce que notre pilote va accomplir. Toutes mes excuses pour la confusion !

La vraie question n'est donc pas de savoir comment une mise à jour du BIOS/firmware peut rendre un processeur plus rapide (c'est possible, en optimisant le microcode, etc.), mais plutôt de savoir à quel point un processeur est handicapé par un BIOS/firmware bogué.

0 votes

Je suis désolée d'avoir posé la mauvaise question. J'ai pensé que cela conviendrait surtout parce que je m'intéresse aussi aux informations non triviales.

0 votes

Np, il est peut-être suffisamment abstrait pour rester. Je suis Ryzen car je prévois une reconstruction majeure et je suis donc tous les problèmes de démarrage. En tant qu'utilisateur de Linux, je suis également les problèmes spécifiques à Linux. Une chose à prendre en compte avec Ryzen (et le zen core) est qu'il s'agit du premier SMT d'AMD et les premières indications sont qu'il rapporte les cœurs logiques différemment d'Intel et le BIOS/Windows pourrait essayer d'utiliser tous les "cœurs" comme des cœurs physiques alors que la moitié sont des cœurs logiques. Cela affecterait considérablement les performances.

0 votes

Les réponses, les commentaires et les réflexions sur cette question sont très importants car les gens ont besoin de savoir si les choses peuvent encore s'améliorer et, jusqu'à présent, j'ai vu que je peux à nouveau espérer. BTW : l'article est très bon !

6voto

horta Points 419

BIOS est généralement considéré comme un micrologiciel. Le BIOS peut manipuler toutes sortes de bits dans le matériel pour modifier le fonctionnement du système.

Donc oui, il est tout à fait possible pour eux de sortir un nouveau firmware et de modifier des choses comme les vitesses d'horloge, ou si les prefetches sont activés, ou si un certain noyau - ou IIO - peut obtenir certaines préférences pour le cache, ce qui a le potentiel d'augmenter les performances de jeu en raison de la plupart des jeux conçus d'une manière monofilaire.

0 votes

Cela semble intéressant. Est-il possible de trouver des références à ce sujet ? Ce serait très bien d'en avoir quelques-unes pour le prouver aux gens :)

0 votes

@ArthurP.R. Entre le pcode, l'ucode (microcode) et le bios, les performances et les fonctionnalités d'une puce peuvent être grandement modifiées. Ce sont tous des logiciels/firmwares. En ce qui concerne les sources, je ne peux pas vous donner de sources externes pour ces informations (car elles sont toutes internes).

0 votes

Quel dommage @horta, mais merci beaucoup pour cette information. N'hésitez pas à ajuster votre réponse pour inclure cette information également. Cela en vaut la peine !

4voto

Chris Rimmer Points 41

Ce n'est pas tant que les mises à jour logicielles rendront le processeur plus rapide. Ce que tout le monde attend, c'est que les mises à jour logicielles rendent les logiciels plus adaptés à l'architecture de Ryzen, et capables de mieux exploiter ses performances.

Corrigez-moi si je me trompe mais le processeur doit avoir un firmware statique pour être compatible avec la norme x64 ?

Presque. Il y a un logiciel dans le CPU (microcode, comme mentionné ci-dessus) et il peut influencer les performances. Fondamentalement, X86 ne spécifie que les résultats des opérations, la manière exacte dont le CPU atteint ces résultats est le problème des ingénieurs. Les chances que les modifications du microcode jouent un rôle majeur avec Ryzen sont minces cependant, car l'écart de performance semble s'appliquer principalement aux jeux qui suggèrent que le CPU est performant, mais certains jeux en particulier ne l'exploitent pas bien.

Le système d'exploitation est chargé de veiller à ce que les programmes soient répartis efficacement sur l'unité centrale, ce qui peut avoir un impact sur les performances, mais d'une manière générale, aucun de ces facteurs ne constitue le principal problème d'une nouvelle architecture. La plupart des améliorations de performances dans des cas comme celui-ci sont le résultat de l'écriture par les développeurs d'un code mieux adapté à la nouvelle architecture. Cela n'a pas tendance à se produire entre les générations de processeurs Intel, car les changements de conception ne sont pas très importants, et ce qui fonctionne bien sur l'une d'elles fonctionnera probablement bien sur une autre.

Cependant, Ryzen est une conception entièrement nouvelle, donc tout ce qui a été écrit pour les autres processeurs n'a pas été écrit pour Ryzen.

Pour simplifier à l'extrême la situation, imaginez deux processeurs :

  • Le processeur 1 est sur le marché depuis un certain temps et (pour une raison quelconque) il est très rapide pour additionner des chiffres. Les logiciels sont conçus pour essayer d'utiliser l'addition autant que possible, afin de tirer parti de cette capacité.

  • Un processeur concurrent arrive sur le marché et est plus faible en addition, mais plus fort en multiplication. Tous les logiciels optimisés pour utiliser des instructions plus lourdes en addition se comportent mal sur le nouveau processeur, mais les logiciels qui n'ont pas été adaptés pour utiliser beaucoup d'addition se comportent plus ou moins de la même manière. Certains logiciels utilisent déjà beaucoup de multiplications et obtiendront de meilleurs résultats sur les nouveaux processeurs que sur le Processeur 1, même le jour du lancement.

Quelque temps après le lancement, les développeurs commenceront à s'adapter, en utilisant davantage de multiplications dans leurs logiciels, ou même en concevant leurs logiciels de manière à basculer entre les chemins de code à forte composante d'addition et ceux à forte composante de multiplication, en fonction de l'architecture du processeur utilisé.

C'est un peu ce qui se passe avec Ryzen : il s'agit d'une nouvelle architecture que les développeurs de logiciels n'ont pas encore optimisée pour répondre à ses caractéristiques. Avec le temps, les développeurs commenceront à peaufiner leurs logiciels pour qu'ils soient plus performants. Comme la plupart des logiciels sont déjà conçus pour être performants sur les CPU Intel (ils sont assez populaires, après tout !), ils ne vont probablement pas beaucoup profiter de ces changements.

Il y a des charges de travail pour lesquelles Intel restera simplement plus rapide, et d'autres pour lesquelles Ryzen est déjà plus rapide (et le sera encore plus) en fonction du comportement sous-jacent. Dans la situation que j'ai donnée plus haut, un logiciel qui n'a besoin que d'ajouter des choses sera toujours plus performant sur le premier processeur, et un logiciel qui doit simplement multiplier des choses sera toujours plus performant sur le second - mais dans la plupart des cas, les logiciels sont complexes et ces différences se nivelleront quelque peu.

Dans ce cas, AMD ne devrait-il pas optimiser les jeux (logiciels) pour ses processeurs, ce qui est évidemment impossible ?

Il est également intéressant de noter que ce qu'AMD a dit au sujet des performances de jeu, c'est qu'ils travaillent avec les développeurs pour optimiser les jeux. Ils envoient des systèmes de développement aux entreprises (il y en a actuellement 300 dans la nature, et ils visent les 1000 d'ici la fin de l'année) et discutent avec ceux dont les jeux se comportent mal pour les aider à résoudre le problème. Pour autant que je sache, aucune déclaration n'a été faite selon laquelle AMD optimise elle-même les jeux.

Dans ce cas particulier, Ryzen est également freiné dans certaines circonstances par Windows qui prend de mauvaises décisions quant aux cœurs à charger, et les BIOS actuels sont problématiques pour des raisons que je ne prétends pas connaître. Cependant, ces problèmes ne peuvent pas être responsables de tout l'écart de performance, car il y a des charges de travail où Ryzen surpasse déjà Intel de manière convaincante, ce qui suggère que le problème est au moins partiellement (si ce n'est principalement) dû aux programmes particuliers exécutés, plutôt qu'au système d'exploitation ou au BIOS dans son ensemble.

0 votes

Cette réponse est également intéressante et ni e. Merci.

1voto

BassGuitarPanda Points 313

Bien sûr, les logiciels peuvent améliorer les performances du CPU ou même du GPU.

L'un des moyens est certainement l'overclocking ou un autre type de mécanisme de modification de l'horloge. La seconde peut être l'optimisation des pilotes. Celles-ci comprennent de meilleures méthodes de compression des données, des algorithmes de décodage plus rapides, etc... en fait, des fonctions qui permettent de mieux utiliser le matériel. Ces fonctionnalités peuvent également être mises à jour par des mises à jour du micrologiciel, qui n'est pas vraiment un logiciel (ordinaire). Il existe également un logiciel qui peut contrôler la solution de refroidissement de votre ordinateur. C'est très utile pour les CPU et les GPU qui utilisent des technologies d'augmentation des performances comme le Turbo Boost d'Intel et le GPU Boost de Nvidia. Ce type de matériel est soumis à certaines limites de température, de sorte qu'il réduit ses performances lorsqu'il est trop chaud et qu'il effectue un overclocking dynamique lorsque les applications exigent une puissance de calcul supérieure, tant qu'il n'a pas atteint sa consommation maximale et qu'il est suffisamment froid.

Il existe également d'autres options, mais celles-ci couvrent l'essentiel. Fondamentalement, tant que vous connaissez le problème et que vous pouvez manipuler de manière programmatique la façon dont les données sont traitées (comme l'introduction d'un algorithme de décodage intelligent qui remplace une solution de type "force brute") ou manipuler les réactions du processeur à différents facteurs clés pour ses performances (comme l'augmentation du refroidissement de manière plus agressive en cas de surchauffe ou la surveillance des demandes de ressources des applications et l'overclocking dynamique lorsque plus de puissance de traitement est nécessaire), vous pouvez faire beaucoup pour améliorer (ou détériorer) les performances d'une unité de traitement.

Dans le cas d'AMD, il s'agit probablement d'une optimisation de son mécanisme de boosting ou de sa solution de refroidissement. L'un ou les deux ont probablement été modifiés pour réagir de manière plus agressive à l'augmentation de la charge ou de la température.

TL;DR : Oui, les logiciels peuvent améliorer les performances d'un processeur. Il y a de nombreuses façons de le faire, comme l'optimisation des pilotes et des microprogrammes, les overclocks, etc. Toute modification logicielle qui prépare les données de manière à ce qu'elles soient plus faciles à traiter ou qui permet au matériel de mieux réagir à la charge ou à ses limites entraînera très probablement une augmentation des performances.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X