Nos processeurs sont intelligents. Ils augmentent leur fréquence quand nécessaire, la baisse le reste du temps pour limiter consommation et chauffe. Mais au fait, comment ça marche ? Quelles sont les différentes technologies à s’occuper de ça pour nous ?
Avant, la comparaison de deux processeurs de même architecture était simple, on regardait la fréquence et on savait lequel était le plus rapide, quelle que soit la tâche à effectuer… Mais ça c’était avant. C’était à une époque où les fabricants de processeurs se souciaient relativement peu de la consommation de leurs puces et avant que les puces soient dotées de plusieurs cœurs. Aujourd’hui, ces deux facteurs sont à l’origine de l’existence de différentes technologies assurant la variation dynamique de la fréquence, qui sont embarquées à la fois dans les CPU et les GPU, et qui peuvent rendre plus difficile la prévision des performances (un processeur à 1,5 GHz de fréquence de base mais montant dans certains cas à 2,5 GHz peut être plus rapide dans ces cas qu’une puce de même architecture dotée d’une fréquence de base de 2 GHz mais ne montant jamais au-dessus…).
Quel est l’intérêt des variations de fréquence ?
Les variations de fréquence visent aujourd’hui principalement deux objectifs : réduire la consommation en période de faible charge et améliorer les performances dans certaines tâches.
Variation à la baisse
Vous l’aurez deviné, la variation de fréquence à la baisse vise à diminuer la consommation électrique, au détriment des performances. La consommation électrique instantanée d’un processeur peut être exprimée de manière empirique avec cette formule : P = k*V²*f (avec P la consommation, V la tension d’alimentation, f la fréquence et k une constante propre à chaque puce).
Diminuer la fréquence permet donc en théorie une diminution du même ordre de la consommation électrique de la puce. En pratique l’impact est en fait bien plus faible, car la diminution de la fréquence augmente le taux de charge de la puce pour une même tâche et le gain de consommation lié à la baisse de fréquence est dans l’absolu bien plus faible pendant les périodes où la puce est au repos. Par exemple (et en simplifiant…), une tâche qui occupe un CPU à 2 GHz à 40% l’occupera à 80% à 1 GHz. Si la puce consomme 50W lorsqu’elle est active et 10W au repos, la consommation moyenne pendant cette tâche sera donc de 26W à 2 GHz (50W 40% du temps, 10W 60% du temps) et 21W à 1 GHz (25W 80% du temps et 5W 20% du temps).
Mais diminuer la fréquence a aussi un autre impact : on peut alors également baisser la tension d’alimentation. Ceci est d’autant plus intéressant que ce facteur apparait au carré dans la formule de la consommation : une baisse de tension de 30% permet une baisse de consommation de plus 50%.
Ces baisses de fréquence ne se font normalement que quand la puce est peu sollicitée, donc n’ont théoriquement pas d’influence sur les performances (une puce chargée à 50% à 2 GHz abat la même quantité de travail par unité de temps que la même puce cadencée à 1 GHz et chargée à 100%) mais peut avoir un effet sur la réactivité de la machine (de petites opérations de courte durée prennent plus de temps).
Variation à la hausse
Cette fois, le but est d’augmenter les performances en augmentant dans certains cas la fréquence de fonctionnement. Mais pourquoi ne pas le faire tout le temps ? À cause de la consommation électrique et de la chaleur qui en résulte.
En augmentant la fréquence d’une puce, on augmente sa consommation et donc, à capacité de refroidissement égale, sa température. L’overclocking dynamique (qui d’ailleurs ne devrait en toute rigueur pas être qualifié d’overclocking, puisqu’il ne s’agit pas de faire fonctionner la puce au-delà des spécifications du constructeur) doit donc se faire en surveillant certains paramètres pour s’assurer de rester dans une plage de fonctionnement acceptable.
C’est pour cela qu’on trouve surtout les technologies d’overclocking dynamique sur des processeurs multi-cœurs, qui sont un environnement particulièrement favorable à ce type d’artifices. En effet, bon nombre de cas d’utilisation n’exploitent pas tous les cœurs à 100%, ce qui permet de « réallouer » la consommation des cœurs peu sollicités vers les cœurs les plus sollicités. Si on reprend l’exemple de la puce consommant 50W en pleine charge et 10W au repos, mais avec cette fois deux cœurs, on obtient une puce qui consomme jusqu’à 100W en pleine charge, et dont le système de refroidissement doit être dimensionné en conséquence. Si seul un cœur est utilisé à pleine charge, la puce ne va consommer que 60W (et même 50W sur les puces modernes qui sont capables d’éteindre complètement un cœur non utilisé), ce qui, compte tenu de la capacité de refroidissement, laisse à disposition 40W qui peuvent être consommés par le cœur utilisé, en augmentant sa fréquence (et sa tension).
Il est ainsi possible de proposer des puces multi-cœur basse consommation, en ayant une fréquence de base relativement faible, tout en ne sacrifiant pas trop les performances sur les applications courantes (qui même aujourd’hui ne tirent souvent pas partie de plus d’un ou deux cœurs) en proposant une très forte montée en fréquence lorsque un seul cœur est utilisé (Intel propose par exemple des processeurs qui atteignent un facteur 2 entre la fréquence de base et la fréquence maximale).
Les variations de fréquences sur le CPU
Longtemps le composant le plus complexe et le plus énergivore d’un ordinateur, le CPU a été le premier à profiter de technologies modulant sa fréquence de fonctionnement.
Intel SpeedStep
Le SpeedStep d’Intel est l’une des toutes premières technologies du genre dans le monde des PC. Elle a été introduite en 1999 avec les Pentium III, et permettait seulement la bascule entre deux fréquences, via une modification dynamique du coefficient multiplicateur, sans toucher à la tension. Le SpeedStep s’appuyait pour cela sur les modes ACPI, en diminuant la fréquence lorsque le processeur n’était pas en mode C0.
Le SpeedStep a ensuite évolué pour permettre aussi une baisse de la tension, permettant de gagner grandement en efficacité puis, à partir des Pentium M, Intel a introduit des paliers intermédiaires entre la fréquence haute et la fréquence basse, pour pouvoir optimiser la consommation plus finement puis, avec l’arrivée des Core 2, le SpeedStep a débarqué sur les processeurs pour machines de bureau.
Notez également que les versions actuelles de SpeedStep ne se limitent plus à la simple variation de la fréquence et de la tension : pour pousser encore plus loin dans la réduction de la consommation, SpeedStep permet désormais de moduler dynamiquement la capacité du cache L2 (pour économiser sur le rafraichissement du cache) et la désactivation complète de certaines portions du CPU.
AMD PowerNow! et Cool’N’Quiet
Quelques temps après le lancement des premiers processeurs mobiles dotés de SpeedStep, AMD a lui aussi proposé une solution de variation dynamique de la fréquence, baptisée PowerNow!.
À défaut d’avoir été le premier, AMD a proposé une solution plus avancée, puisque les Athlon dotés de PowerNow! étaient capables de faire basculer leurs paramètres avec 32 valeurs possibles pour le couple fréquence/tension. En plus de réduire la consommation lorsque le processeur quitte le mode C0, PowerNow! permet de réduire la consommation dans le mode C0, en analysant la charge du processeur pour déterminer s’il est possible de réduire la vitesse de fonctionnement.
Avec les Athlon X2, AMD a porté une évolution PowerNow! sur ses puces de bureau (prenant donc cette fois un peu d’avance sur Intel), sous le nom de Cool’N’Quiet. Toujours présentes sur les puces AMD actuelles, cette technologie a également évolué pour agir sur plus de paramètres, comme la désynchronisation des différents cœurs ou l’arrêt des unités inutilisées.
Intel Dynamic Acceleration Technology et Turbo Boost
Introduit avec les processeurs mobiles de la gamme Core 2, DAT consiste à augmenter la fréquence d’un cœur du processeur lorsque l’autre entre en mode ACPI C3 (le mode de veille le plus profond prévu par la norme ACPI, dans lequel le CPU doit juste conserver l’état de ses registres).
Avec l’arrivée des Core i, une nouvelle version de DAT est arrivée, sous le nom Turbo Boost, aussi bien sur les versions mobiles que sur les versions de bureau. Contrairement à DAT, le Turbo Boost permet aussi un gain de fréquence lorsque tous les cœurs sont actifs, tant que les valeurs limites fixées par Intel ne sont pas dépassées pour la consommation et la température de la puce. La montée en fréquence lorsque tous les cœurs sont actifs peut donc dépendre de la qualité de la puce (une puce de meilleure qualité restant plus facilement dans les limites de consommation), du système de refroidissement (un système de refroidissement un peu juste limitera la durée pendant laquelle la puce peut monter en fréquence) et des tâches effectuées.
Avec les premières versions de Turbo Boost, les gains de fréquence étaient relativement modestes pour les puces de bureau (rarement plus de 100 à 200 MHz) et plus important sur les puces mobiles (jusqu’à 1 GHz sur les puces à 4 cœurs, dont la fréquence de base était très faible pour garder un TDP acceptable), mais ont ensuite augmenté au fil des versions des processeurs. Dans la gamme Haswell actuelle, le Turbo peut 500 MHz sur un cœur dans la gamme de bureau classique et jusqu’à 1,6 GHz pour les puces basse consommation.
AMD Turbo Core
Lancé avec les Phenom II, la technologie Turbo Core d’AMD augmente la fréquence de la puce lorsque moins de la moitié des cœurs sont utilisés (Cool’N’Quiet se chargeant de son côté de diminuer la fréquence des cœurs inutilisés).
Comme Turbo Boost, Turbo Core s’appuie sur le TDP de la puce pour déterminer la limite de consommation à ne pas dépasser. Par rapport à son équivalent Intel, Turbo Core était par contre bien moins souple (pas d’augmentation de fréquence si plus de la moitié des cœurs sont utilisés) mais offre un gain de performances plus élevé (jusqu’à 500 MHz de boost dès la première version).
Avec son architecture Bulldozer, AMD a introduit la version 2.0 de Turbo Core, qui se rapproche bien plus du Turbo Boost, en permettant elle aussi une augmentation de fréquence même lorsque tous les cœurs sont utilisés (toujours dans la limite du TDP de la puce). L’architecture particulière des Bulldozer imposait par contre toujours un fonctionnement un peu moins souple, deux cœurs appartenant à un même module devant impérativement fonctionner à la même fréquence, puisqu’ils partagent certaines unités de calcul.
Côté GPU…
Les GPU ne sont pas en reste et ont désormais eux aussi droit à leurs technologies de modulation des fréquences. Les variations à la baisse en faible charge sont apparues les premières, mais elles ont été relativement peu mises en avant par le marketing. Ce sont donc surtout les technologies destinées à améliorer les performances en augmentant la fréquence quand c’est possible qui sont connues.
AMD PowerPlay
Arrivé en 2007 avec les Radeon 3800, PowerPlay est le SpeedStep des Radeon. Les puces compatibles disposent de deux modes de fonctionnement, un mode basse consommation utilisé dès que le GPU ne fait pas de traitements 3D et le mode hautes performances enclenché lorsqu’une application 3D est lancée.
AMD PowerTune
Même lorsque les applications demandent au GPU d’effectuer les rendus aussi vite que possible (pas de V-Sync par exemple), la consommation peut fortement varier d’une application à l’autre, le taux d’utilisation des différentes unités de calcul du GPU n’étant pas forcément toujours le même.
Certaines applications, et notamment le benchmark FurMark poussant les GPU dans leurs derniers retranchements, les fabricants étaient obligés de réduire la fréquence maximale de leurs puces pour ne pas excéder le TDP dans les cas les plus extrêmes. Une situation fort dommageable, puisque dans les situations moins extrêmes les GPU offraient alors des performances inférieures à ce qui aurait été possible compte tenu de l’enveloppe thermique disponible… AMD a alors eu l’idée d’implémenter une sorte de « Turbo à l’envers » : PowerTune, introduit avec les Radeon 6000.
Sur un CPU avec Turbo, le TDP est spécifié de telle sorte qu’il ne soit jamais dépassé à la fréquence de base, et le turbo augmente la fréquence tant que le TDP n’est pas dépassé. Sur les GPU PowerTune, un TDP maximum est spécifié, mais il peut être inférieur à la consommation maximale de la puce à sa fréquence de base. La puce fonctionne alors en temps normal à sa fréquence de base, mais ralentit si le TDP risque d’être dépassé (notez que plutôt que de faire une mesure de la consommation, AMD en fait une estimation en mesurant le taux d’utilisation de chaque unité de calcul du GPU, ce qui permet une plus grande réactivité). Le driver permet de plus à l’utilisateur d’ajuster la limite de TDP à la hausse ou à la baisse. Ce réglage n’a pas d’impact sur la fréquence maximale atteinte par le GPU, mais simplement sur le temps moyen que le GPU passera à sa fréquence maximale pour une application donnée.
Enfin, sur les cartes plus récentes, AMD propose « PowerTune With Boost », qui cette fois fonctionne un peu plus à la manière du Turbo des CPU : il peut toujours arriver que la puce descende en dessous de sa fréquence de base dans des tâches particulièrement gourmande, mais à l’inverse, si une tâche consomme moins que le TDP même à la fréquence de base, le GPU peut monter légèrement en fréquence.
Nvidia GPU Boost
Introduit avec les GeForce 600, GPU Boost fonctionne comme le Turbo des CPU : si la consommation est inférieure au TDP spécifié, la puce monte en fréquence par incréments d’une dizaine de MHz.
Par rapport au boost d’AMD, GPU Boost est plus précis dans sa détermination de la consommation (des capteurs mesurent la puissance électrique en entrée du GPU), mais ne permet pas de moduler la fréquence aussi souvent (de l’ordre de 10 ajustements par seconde chez Nvidia contre une centaine chez AMD) et les incréments de fréquence sont plus grands. En pratique, il y a toutefois peu de différences à l’usage.
Avec la série 700, GPU Boost a eu droit à sa version 2.0, qui change la référence utilisée pour déterminer si la fréquence peut être augmentée. Ce n’est plus la consommation qui est mesurée, mais simplement la température, puisqu’en pratique, c’est plutôt elle qui doit être considérée comme la valeur critique : ce n’est pas un excès de consommation qui risque d’endommager un GPU, mais bien une surchauffe.
Par défaut, les cartes GPU Boost 2.0 peuvent donc monter en fréquence tant que leur température n’atteint pas 80°C, ce qui du coup peut donner un avantage de performances aux cartes dotées de systèmes de refroidissement plus efficaces. La valeur limite de la température peut par ailleurs être ajustée par l’utilisateur, pour pouvoir privilégier les performances (hausse de la température limite) ou le silence (baisse de la température limite).
Très bon article pour faire le point sur ses connaissances !
Vous avez un lecteur au rendez-vous !
C’est quand même une sacré arnaque ce truc :
– Avant on achetait un CPU / GPU les perfs étaient connues et reproductibles (en gros le nombre FPS pour une carte graphique était le même à config égale)
– Maintenant avec les « boost » voir maintenant underclocking associé a un trés problable tri des échantillons envoyés aux journalistes pour tests, c’est la loterie !
Les meilleurs modèles partent pour tests chez les journalistes (pour avoir de beaux benchmark), et pour le CONsommateur avec un peu de chance t’as les mêmes perfs que dans les tests (voir plus), mais trés probablement tu seras en dessous.
Autre ca smoyen, t’envoies ta carte graphique en SAV et te retrouve avec une cartye 10% moins performante (même marque, même modèle, mais turbo moins performant).
Ton point de vue, est compréhensible (coté consommateur: en avoir pour son argent).
Maintenant point de vue de l’ingénieur, si on supprime cette belle technologie (retour en 1990^^)
On fabrique nos puces, on a besoin d’un rendement de 80% pour être rentable (C’est le bosse qui décide!), les pires condition de dissipation sont défini 0.4°C/W par exemple, et dans le pire des cas la température boitier est à 50°C.
Il faut donc que le couple fréquence/tension ne dépasse pas 1.2V, 1.4Ghz (obtenue avec un beau calcul savant pour garantir les 80% de rendement^^)
Du coup on nivelle par le bas toute la production, et toutes les mises en œuvre à 1.2V 1.4GHz.
Et 3 « overclocker » vont voir qu’il peuvent aller bien plus loin avec leur matos, sauf en été quand il fait beaucoup plus chaud.
Le coté dynamique,
Suivant le ventirad influe sur la dissipation, donc maintenant les perfs.
la saison été/hivers: influe sur température ambiante,qui influe sur la dissipation, donc…
En oui bien sur la qualité de la puce comme tu le soulignes
va influencer sur ces performances.
Je suis pas dans le petits soulier des fabricants, mais je suis quasi certain que les autres paramètres influent tout autant, (et peut être plus) que la qualité de la puce.
Une température de boitier qui passe de 30 à 35°C pour une puce à 80°C max, influe de ~10% sur la dissipation… (P=k*T) donc un équivalent coté fréquence de ~10%… (P = k*V²*f)
Mme Michu, est presque aux limites de son matos en permanence.
Par contre ça excuse en rien une pratique « échantillons sélectionnés pour les journalistes », après c’est là le travail des journalistes d’être suffisamment indépendant et de ne pas prendre pour argent comptant ce que les fabricants fournissent.