Fonctionnement d'un ordinateur/La consommation d'énergie d'un ordinateur

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche
Loi de Kommey.

Dans ce chapitre, nous allons évoquer la consommation énergétique. Nos ordinateurs consomment une certaine quantité de courant pour fonctionner, et donc une certaine quantité d'énergie. Il se trouve que cette énergie finit par être dissipée sous forme de chaleur : plus un composant consomme d'énergie, plus il chauffe. La chaleur dissipée est mesurée par ce qu'on appelle l'enveloppe thermique, ou TDP (Thermal Design Power), mesurée en Watts. Généralement, le TDP d'un processeur tourne autour des 50 watts, parfois plus sur les modèles plus anciens.

De telles valeurs signifient que les processeurs actuels chauffent beaucoup. Pourtant, ce n'est pas la faute des fabricants de processeurs qui essaient de diminuer la consommation d'énergie de nos CPU au maximum. Malgré cela, nos processeurs voient leur consommation énergétique augmenter toujours plus : l'époque où l'on refroidissait les processeurs avec un simple radiateur est révolue. Place aux gros ventilateurs super puissants, placés sur un radiateur. Et pourtant, l'efficacité énergétique des processeurs n'a pas cessé d'augmenter au cours du temps : pour le même travail, les processeurs chauffent moins. Avant l'année 2010 (environ, la date exacte varie suivant les estimations), la quantité de calcul que peut effectuer le processeur en dépensant un watt double tous les 1,57 ans. Cette observation porte le nom de loi de Kommey. Mais depuis l'année 2010, on est passé à une puissance de calcul par watt qui double tous les 2,6 ans. Il y a donc eu un ralentissement dans l'efficacité énergétique des processeurs.

La consommation d'un processeur[modifier | modifier le wikicode]

Pour comprendre pourquoi, on doit parler de ce qui fait qu'un processeur consomme de l'énergie. Précisons que ce que nous allons dire se généralise à tous les circuits électroniques, sans exceptions. Une partie de la consommation d'énergie d'un processeur vient du fait que les transistors consomment de l'énergie en changeant d'état. On appelle cette perte la consommation dynamique. Une autre partie vient du fait que les transistors ne sont pas des dispositifs parfaits et qu'ils laissent passer un peu de courant entre la grille et le drain (y compris dans l'état fermé). Cette consommation est appelée la consommation statique.

L'évolution de la finesse de gravure a des effets différents sur chaque type de consommation : si elle diminue la consommation dynamique, elle augmente la consommation statique. La loi de Kommey ne valait que tant que la consommation dynamique était la plus importante des deux. Lors de cette période, la réduction de la finesse de gravure permettait de diminuer la consommation d'énergie, tout en augmentant la puissance de calcul. Mais depuis, les choses ont changées et la consommation statique est devenue plus importante. L'évolution de la finesse de gravure ne permettant plus de réduire la consommation statique, la consommation d'énergie des processeurs s'est mise à stagner, ce qui explique le ralentissement de la loi de Kommey.

La consommation dynamique d'un processeur[modifier | modifier le wikicode]

Commençons par évaluer la consommation dynamique en fonction de la finesse de gravure. Pour l'évaluer, il faut se rappeler d'une chose : un transistor est composé de deux morceaux de conducteurs (l'armature de la grille et la liaison drain-source) séparés par un isolant. Dit autrement, c'est une sorte de condensateur, à savoir un composant capable d'accumuler des charges électriques (ici, des électrons). La quantité d'énergie que peut stocker un tel condensateur est égale au produit ci-dessous, avec C un coefficient de proportionnalité appelé la capacité du condensateur et U la tension d'alimentation. Cette équation nous dit que la consommation d'énergie d'un transistor dépend du carré de la tension d'alimentation et de sa capacité. Ainsi, plus la tension d'alimentation est élevée, plus le composant consomme d'énergie.

Cette énergie est dissipée quand le transistor change d'état, il dissipe une quantité de chaleur proportionnelle au carré de la tension d'alimentation. Or, la fréquence définit le nombre maximal de changements d'état qu'un transistor peut subir en une seconde : pour une fréquence de 50 hertz, un transistor peut changer d'état 50 fois par seconde maximum. Pour un seul transistor, l'énergie dissipée en une seconde (la puissance P) est donc calculable de la sorte :

Et si on prend en compte le fait qu'un processeur contient un nombre n de transistors, on obtient alors que la consommation énergétique d'un processeur est égale à :

Dans la section qui suit, la capacité des transistors ne nous intéressera pas beaucoup, pas plus que leur nombre. On pourra se contenter d'une relation qui ne contient que la fréquence et la tension.

L'équation précédente ne tient pas compte d'un phénomène de court-circuit, qui apparait dans les circuits CMOS. Pour rappel, les portes logiques CMOS sont construites à partir de transistors PMOS et NMOS. Les premiers relient la tension d'alimentation à la sortie et les seconds relient la masse (le 0 volt) à la sortie. En théorie, lorsque les premiers sont fermés, les seconds sont ouverts et réciproquement. Mais tout cela ne vaut qu'une fois que les transistors ont atteint leur état final. Quand ils changent d'état, il se peut que les transistors PMOS s'ouvrent avant que les NMOS ne se ferment ou inversement. Durant un temps assez faible, la tension d'alimentation est alors connectée à la masse. Dit autrement, il existe un court-circuit entre tension d'alimentation et masse, court-circuit qui dissipe de la puissance. Cette puissance de court-circuit est négligeable dans la plupart des calculs. Mais on peut préciser qu'elle est aussi proportionnelle à la tension d'alimentation et à la fréquence. Ce qui fait que l'équation précédente reste valide.

La consommation statique d'un processeur[modifier | modifier le wikicode]

Les calculs précédents ne prenaient pas en compte la consommation statique, qui existe même quand nos transistors restent dans le même état. Il nous reste à comprendre d'où vient cette consommation statique pour comprendre comment la finesse de gravure influe dessus.

Pour commencer, la grille et la liaison source-drain d'un transistor sont séparés par un isolant : aucun courant ne devrait la traverser. Mais avec la miniaturisation, la couche d'isolant ne fait guère plus de quelques dizaines atomes d'épaisseur et laisse passer un peu de courant : on parle de courants de fuite. Plus cette couche d'isolant est petite, plus le courant de fuite sera fort. En clair, une diminution de la finesse de gravure a tendance à augmenter les courants de fuite. Les lois de la physique nous disent alors que la consommation d'énergie qui résulte de ce courant de fuite est égale au produit entre la tension d'alimentation et le courant de fuite.

Les technologies de réduction de la puissance dissipée par un processeur[modifier | modifier le wikicode]

L'équation précédente dit que diminuer la tension ou la fréquence permettent de diminuer la consommation énergétique. De plus, la diminution de tension a un effet plus marqué que la diminution de la fréquence. Pour réduire la tension et la fréquence, les ingénieurs ont inventé diverses techniques assez intéressantes, qui permettent d'adapter la tension et la fréquence en fonction des besoins.

Le Dynamic Voltage Scaling et le Frequency Scaling[modifier | modifier le wikicode]

Les fabricants de CPU ont eu l'idée de faire varier la tension et la fréquence en fonction de ce que l'on demande au processeur. Rien ne sert d'avoir un processeur qui tourne à 200 gigahertz pendant que l'on regarde ses mails. Par contre, avoir un processeur à cette fréquence peut être utile lorsque l'on joue à un jeu vidéo dernier cri. Dans ce cas, pourquoi ne pas adapter la fréquence suivant l'utilisation qui est faite du processeur ? C'est l'idée qui est derrière le Dynamic Frequency Scaling, aussi appelé DFS. De plus, diminuer la fréquence permet de diminuer la tension d'alimentation, pour diverses raisons techniques. La technologie consistant à diminuer la tension d'alimentation suivant les besoins s'appelle le Dynamic Voltage Scaling, de son petit nom : DVS. Ces techniques sont gérées par un circuit intégré dans le processeur, qui estime en permanence l'utilisation du processeur et la fréquence/tension adaptée.

Le Clock Gating et le Power Gating[modifier | modifier le wikicode]

Un bon moyen de réduire la consommation électrique de quoi que ce soit est simplement de ne pas dépenser d'énergie inutilement. Une source importante d'économie d'énergie est de ne pas alimenter ce qui ne fonctionne pas, ce qui est en pause ou inutilisé. Si on prend un exemple pour une maison, ne pas éclairer une pièce inutilisée et/ou ne pas la chauffer, évite des gaspillages. Et bien des économies du même genre sont possibles dans un processeur. Il arrive que certains circuits dans un processeur soient inutilisés, pour des raisons aussi diverses que variées. Dans ce cas, on peut éviter d'alimenter ces circuits en pause, ce qui réduit la consommation statique. Mais on peut aussi réduire leur consommation dynamique, en leur évitant de changer d'état. Voyons dans le détail comment ces deux techniques sont mises en place.

Clock gating.

La seconde solution, en lien avec le changement d'état des circuits inutilisés, consiste à jouer sur la manière dont l'horloge est distribuée dans le processeur. On estime qu'une grande partie des pertes ont lieu dans l'arbre d'horloge (l'ensemble de fils qui distribuent l'horloge aux bascules). Approximativement 20 à 30% des pertes ont lieu dans l'arbre d'horloge, mais tout dépend du processeur. Les pertes dans l'arbre d'horloge peuvent monter à 90% sur certains processeurs. Et la raison à cela est assez intuitive : l'horloge change d'état à chaque cycle, alors que les autres circuits peuvent garder leur état d'un cycle à l'autre. Rappelons que la dissipation thermique a lieu quand un bit change de valeur. Dans un circuit (hors arbre d'horloge), les bits ne changent pas forcément de valeur à chaque cycle. Sur les designs modernes, la probabilité de transition 0 <-> 1 étant d'environ 10%-30%. Et si les bits gardent la même valeur, alors il n'y a pas de dissipation de puissance. Par contre, l'horloge change d'état à chaque cycle : elle passe de 0 à 1, puis de 1 à 0, à chaque cycle. Il y a toujours deux transitions à chaque cycle, et donc dissipation d'énergie à chaque cycle.

Une première solution consiste à utiliser des bascules spéciales. En effet, l'horloge est surtout connectée aux bascules/registres des circuits séquentiels, la connexion à des circuits combinatoires étant beaucoup plus rare. En conséquence, une bonne partie des pertes liées à l'horloge sont localisées dans ces bascules. Et il est possible de concevoir des bascules synchrones qui consomment peu de puissance.

Une autre solution possible est ne pas envoyer le signal d'horloge en entrée des circuits inutilisés : on appelle cela le Clock Gating. Pour implémenter cette technique, on est obligé de découper notre processeur en sous-circuits, tous reliés à l'horloge. L'ensemble de ces circuits formera un tout du point de vue de l'horloge : on pourra tous les déconnecter de l'horloge d'un coup. Pour implémenter le Clock Gating, on dispose entre l'arbre d'horloge et le circuit un circuit qui inhibera l'horloge au besoin. Ce circuit d'inhibition de l'horloge, qui s'appelle une Clock Gate, est relié à la fameuse unité de gestion de l'énergie intégrée dans le processeur qui se charge de le commander. Comme on le voit sur le schéma du dessus, ces Clock Gates sont commandées par un bit, qui ouvre ou ferme la Clock Gate. Ce signal est généré par une unité spéciale dans notre processeur.

Power Gating.

Une autre solution consiste à éteindre les circuits inutilisés d'un processeur, qui ne consommeront donc plus de courant : on parle de power gating. Elle s'implémente en utilisant des Power Gates, qui déconnecter les circuits de la tension d'alimentation quand ceux-ci sont inutilisés. Cette technique est très efficace, surtout pour couper l'alimentation du cache du processeur.

La distribution de tensions d'alimentations multiples[modifier | modifier le wikicode]

Une autre solution prend en compte le fait que certaines portions du processeur sont naturellement plus rapides que d'autres. IL est en effet possible de faire fonctionner certaines portions du processeur à une fréquence plus basse que le reste. Autant les circuits de calculs doivent fonctionner à la fréquence maximale, autant un processeur intègre des circuits annexes assez divers, sans rapport avec ses capacités de calcul et qui peuvent fonctionner au ralenti. Par exemple, les circuits de gestion de l'énergie n'ont pas à fonctionner à la fréquence maximale, tout comme les timers (des circuits qui permettent de compter les secondes, intégrés dans les processeurs et utilisés pour des décomptes logiciels). Pour cela, les concepteurs de CPU font fonctionner ces circuits à une fréquence plus basse que la normale. Ils ont juste à ajouter des circuits de réduction de fréquence dans l'arbre d'horloge, ce qui est assez trivial.

Vu que les circuits en question fonctionnent à une fréquence inférieure à ce qu'ils peuvent, on peut baisser leur tension d'alimentation juste ce qu'il faut pour les faire aller à la bonne vitesse. Pour ce faire, on doit utiliser plusieurs tensions d'alimentation pour un seul processeur. Ainsi, certaines portions du processeur seront alimentées par une tension plus faible, tandis que d'autres seront alimentées par des tensions plus élevées. La distribution de la tension d'alimentation dans le processeur est alors un peu plus complexe, mais rien d'insurmontable. Pour obtenir une tension quelconque, il suffit de partir de la tension d'alimentation et de la faire passer dans un régulateur de tension, qui fournit la tension voulue en sortie. Les concepteurs de CPU ont juste besoin d'ajouter plusieurs régulateurs de tension, qui fournissent les diverses tensions nécessaires, et de relier chaque circuit avec le bon régulateur.

L'influence de la loi de Moore[modifier | modifier le wikicode]

La loi de Moore a des conséquences assez intéressantes. En effet, l'évolution de la finesse de gravure permet d'augmenter le nombre de transistors et la fréquence, mais aussi de diminuer la tension d'alimentation et la capacité des transistors. Pour comprendre pourquoi, il faut savoir que le condensateur formé par la grille, l'isolant et le morceau de semi-conducteur est ce que l'on appelle un condensateur plan. La capacité de ce type de condensateur dépend de la surface de la plaque de métal (la grille), du matériau utilisé comme isolant (en fait, de sa permittivité), et de la distance entre la grille et le semi-conducteur. On peut calculer cette capacité comme suit, avec S la surface de la grille, e un paramètre qui dépend de l'isolant utilisé et d la distance entre le semi-conducteur et la grille (l'épaisseur de l'isolant, quoi).

Généralement, le coefficient e (la permittivité électrique) reste le même d'une génération de processeur à l'autre. Les fabricants ont bien tenté de diminuer celui-ci, et trouver des matériaux ayant un coefficient faible n'a pas été une mince affaire. Le dioxyde de silicium pur a longtemps été utilisé, celui-ci ayant une permittivité de 4,2, mais il ne suffit plus de nos jours. De nombreux matériaux sont maintenant utilisés, notamment des terres rares. Leur raréfaction laisse planer quelques jours sombres pour l'industrie des processeurs et de la microélectronique en général. Dans les faits, seuls les coefficients S et d vont nous intéresser.

Les équations de Dennard[modifier | modifier le wikicode]

Si la finesse de gravure diminue de , la distance d va diminuer du même ordre. Quant à la surface S, elle va diminuer du carré de , c’est-à-dire qu'elle sera divisée par 2. La capacité totale sera donc divisée par tous les deux ans. La fréquence suit le même motif. Cela vient du fait que la période de l'horloge correspond grosso modo au temps qu'il faut pour remplir ou vider l'armature de la grille. Dans ces conditions, diminuer la capacité diminue le temps de remplissage/vidange, ce qui diminue la période et fait augmenter la fréquence. Les conséquences d'une diminution par de la finesse de gravure sont résumées dans le tableau ci-dessous. L'ensemble porte le nom de lois de Dennard, du nom de l'ingénieur qui a réussi à démontrer ces équations à partir des lois de la physique des semi-conducteurs.

Paramètre Coefficient multiplicateur (tous les deux ans)
Finesse de gravure
Nombre de transistors par unité de surface
Tension d'alimentation
Capacité d'un transistor
Fréquence

Plus la finesse de gravure est faible, plus le composant électronique peut fonctionner avec une tension d'alimentation plus faible. La tension d'alimentation est proportionnelle à la finesse de gravure : diviser par deux la finesse de gravure divisera la tension d'alimentation par deux. La finesse de gravure étant divisée par la racine carrée de deux tous les deux ans, la tension d'alimentation fait donc de même. Cela a pour conséquence de diviser la consommation énergétique par deux, toutes choses égales par ailleurs. Mais dans la réalité, les choses ne sont pas égales par ailleurs : la hausse du nombre de transistors va compenser exactement l'effet de la baisse de tension. A tension d'alimentation égale, le doublement du nombre de transistors tous les deux ans va faire doubler la consommation énergétique, ce qui compensera exactement la baisse de tension.

La finesse de gravure permet aussi de faire diminuer la capacité d'un transistor. Comme pour la tension d'alimentation, une division par deux de la finesse de gravure divise par deux la capacité d'un transistor. Dit autrement, la capacité d'un transistor est divisée par la racine carrée de deux tous les deux ans. On peut remarquer que cela compense exactement l'effet de la fréquence sur la consommation énergétique. La fréquence étant multipliée par la racine carrée de deux tous les deux ans, la consommation énergétique ferait de même toutes choses égales par ailleurs.

Si on fait le bilan, la consommation énergétique des processeurs ne change pas avec le temps, du moins si ceux-ci gardent la même surface. Cette conservation de la consommation énergétique se fait cependant avec une augmentation de performance. Ainsi, la performance par watt d'un processeur augmente avec le temps. L'augmentation de performance étant de 80 % par an pour un processeur, on déduit rapidement que la performance par watt augmente de 80 % tous les deux ans. Du moins, c'est la théorie. Théorie qui fonctionnait bien il y a encore quelques années, mais qui ne se traduit plus dans les faits depuis la commercialisation des premiers processeurs Intel Core. Depuis, on observe que le nombre de transistors et la finesse de gravure suivent la tendance indiquée par la loi de Moore, mais cela ne permet plus de faire baisser la tension ou la fréquence. L'ère des équations de Dennard est aujourd'hui révolue, reste à vous expliquer pourquoi.

La fin des équations de Dennard[modifier | modifier le wikicode]

La raison principale de la fin des équations de Dennard tient dans la consommation statique et plus précisément dans l'existence des courants de fuite. Les courants de fuite traversent l'isolant du transistor, qui a une certaine résistance électrique. Or, quand on fait passer un courant dans une résistance, il se forme une tension à ses bornes, appelée tension de seuil. Cette tension de seuil est proportionnelle au courant et à la résistance (c'est la fameuse loi d'Ohm vue au collège). On ne peut pas faire fonctionner un transistor si la tension d'alimentation (entre source et drain) est inférieure à la tension de seuil. C'est pour cela que ces dernières années, la tension d'alimentation des processeurs est restée plus ou moins stable, à une valeur proche de la tension de seuil (1 volt, environ). Il faut alors trouver autre chose pour limiter la consommation à des niveaux soutenables.

Les concepteurs de processeurs ne pouvaient pas diminuer la fréquence pour garder une consommation soutenable, et ont donc préféré augmenter le nombre de cœurs. L'augmentation de consommation énergétique ne découle que de l'augmentation du nombre de transistors et des diminutions de capacité. Et la diminution de 30 % tous les deux ans de la capacité ne compense plus le doublement du nombre de transistors : la consommation énergétique augmente ainsi de 40 % tous les deux ans. Bilan : la performance par watt stagne. Et ce n'est pas près de s'arranger tant que les tensions de seuil restent ce qu'elles sont.