Pourquoi les processeurs qui travaillent plus dur utilisent-ils plus d'énergie électrique?

16

À l'époque où j'ai commencé à coder, du moins pour autant que je sache, les processeurs utilisaient tous une quantité fixe de puissance. Il n'y avait pas de processeur «inactif».

De nos jours, il existe toutes sortes de technologies pour réduire la consommation d'énergie lorsque le processeur n'est pas très occupé, principalement en réduisant dynamiquement la fréquence d'horloge.

Ma question est pourquoi le fonctionnement à une fréquence d'horloge inférieure consomme moins d'énergie?

Mon image mentale d'un processeur est celle d'une tension de référence (disons 5V) représentant un 1 binaire et 0V représentant 0. Par conséquent, j'ai tendance à penser à un 5V constant appliqué sur toute la puce, les différentes portes logiques déconnectant cette tension lorsqu'il est "éteint", ce qui signifie qu'une quantité constante d'énergie est utilisée. La vitesse à laquelle ces portes sont ouvertes et fermées ne semble pas avoir de rapport avec la puissance utilisée.

Je n'ai aucun doute que c'est une image désespérément naïve, mais je ne suis pas ingénieur électricien. Quelqu'un peut-il expliquer ce qui se passe réellement avec la mise à l'échelle des fréquences et comment cela économise de l'énergie? Existe-t-il d'autres façons dont un processeur utilise plus ou moins d'énergie selon l'état? Par exemple, utilise-t-il plus de puissance si plus de portes sont ouvertes?

En quoi les processeurs mobiles / basse consommation sont-ils différents de leurs cousins ​​de bureau? Sont-ils simplement plus simples (moins de transistors?), Ou y a-t-il une autre différence de conception fondamentale?


la source
8
Vous avez tort, les processeurs n'ont jamais utilisé la même quantité d'énergie au fil du temps, c'était toujours variable. En simplifiant considérablement les choses, on peut supposer que l'énergie n'est dépensée que pour commuter une seule valeur de bascule. Par conséquent, plus le calcul est effectué par seconde, plus les registres internes changent leurs valeurs, plus la puissance est dépensée.
2
Si je me souviens bien de mon électronique, la plupart de l'énergie «gaspillée» (alias «chaleur») est une fuite (alias (petites) quantités de courant circulant là où aucun flux ne devrait se produire). Cela se produit davantage lorsque vous utilisez a.) Une tension plus élevée et b.) Une commutation à des fréquences plus élevées. La plupart des processeurs modernes réduisent à la fois la tension et la fréquence dans leurs états de faible puissance (et même s'ils n'en réduisent qu'un seul, c'est toujours un gain).
3
@ SK-logic: De nombreux processeurs historiques utilisent la logique ECL, qui consomme à peu près la même quantité d'énergie, quelle que soit la fréquence d'horloge. Seymour Cray a conçu le CDC 8600, le Cray-1, le Cray X-MP, le Cray Y-MP, le Cray T90 pour utiliser ECL. L'article de Wikipedia ECL logic en énumère quelques autres provenant d'autres sociétés. Dites-vous que ces machines n'ont jamais existé, ou dites-vous qu'elles ne comptent pas comme processeurs?
davidcary
Les processeurs économisent également de l'énergie en utilisant une instruction d'arrêt. Le noyau du système d'exploitation peut définir une minuterie pour réveiller le processeur et exécuter cette instruction pour l'endormir.
Oskar Skog

Réponses:

24

La vitesse à laquelle ces portes sont ouvertes et fermées ne semble pas avoir de rapport avec la puissance utilisée.

C'est là que vous vous trompez. Fondamentalement, chaque porte est un condensateur avec une capacité incroyablement minuscule. En l'allumant et en l'éteignant en «connectant» et en «déconnectant» la tension déplace une charge électrique incroyablement minuscule dans ou hors de la grille - c'est ce qui la fait agir différemment.

Et une charge électrique en mouvement est un courant qui utilise de l'énergie. Tous ces minuscules courants provenant de milliards de portes commutées des milliards de fois par seconde s'additionnent un peu.

Michael Borgwardt
la source
C'est ce qui se passe en mémoire - la mémoire DRAM. La mémoire du processeur (le cache) utilise la SRAM qui n'est pas implémentée avec des condensateurs ...
7
@ m3th0dman: Je ne parle pas des éléments destinés à être des condensateurs. Chaque transistor, chaque élément à l'intérieur du CPU a une capacité.
7

Comme le souligne le commentaire de SK-logic, la majeure partie de l'énergie est vraiment dépensée pour commuter la bascule plutôt que pour un état stable.

Pour réduire dynamiquement il y a deux choses principales que vous pouvez faire IIRC.

  1. si des zones entières d'une puce ne sont pas synchronisées, vous pouvez potentiellement couper complètement l'alimentation de ces zones

  2. L'arbre d'horloge lui-même est l'un des plus grands drains électriques du système, en grande partie car il s'agit de la partie de commutation la plus rapide d'un système. Il est donc important de réduire la puissance dans l'arbre d'horloge lui-même.

jk.
la source
Qu'est-ce que l'arbre d'horloge?
akaltar
2
@akaltar le total de toutes les lignes qui distribuent le signal d'horloge à chaque élément du processeur qui doit être synchronisé avec l'horloge.
Michael Borgwardt
6

La puissance consommée par un circuit électronique a deux composantes:

  • la fuite, qui est plus ou moins indépendante de la constante de fréquence et dépendra de la technologie et de la tension de travail;
  • la puissance de commutation, qui dépend de la fréquence (elle est due au chargement et au déchargement de diverses capacités, transistors et fils)

Afin de réduire la consommation, les concepteurs de processeurs utilisent plusieurs techniques:

  • modifier la fréquence en fonction de la charge (cela n'agira que sur la puissance de commutation)
  • réduire la puissance ou même éteindre certaines parties des circuits lorsqu'ils ne sont pas nécessaires

Ces techniques ont pour résultat qu'en fonction de votre charge, vous pouvez être mieux loti, du point de vue de la consommation d'énergie, soit en réduisant la fréquence, soit en faisant un "sprint" à pleine vitesse, puis en coupant un sous-ensemble des circuits.

AProgrammer
la source
Il est également possible que la réduction de la fréquence permette de réduire la tension de fonctionnement (car les transistors sont un peu plus lents alors) pour réduire les fuites.
TEMLIB
0

L'exécution à une fréquence d'horloge inférieure n'affecte pas l'énergie requise pour effectuer une tâche fixe. Il peut même augmenter l'énergie requise si vous tenez compte des fuites et que vous êtes capable de vous éteindre complètement.

Là où une fréquence d'horloge inférieure permet d'économiser de l'énergie, il est également possible de réduire la tension de fonctionnement. La réduction de la tension permet souvent d'économiser suffisamment d'énergie pour compenser le besoin de rester actif plus longtemps.

Sean Houlihane
la source
Je ne suis pas d'accord avec Sean. L'abaissement de la fréquence d'horloge réduit toutes les pertes de commutation parasites impliquées dans toute la chaîne d'horloge, ce qui est énorme dans un processeur typique. Mon runs de Atom à 1GHz, si j'étrangle la CPU vers le bas pour 500MHz il fonctionne plus froid et tire visiblement moins d' énergie à partir de l'alimentation, et il n'affecte la tâche - il faut deux fois plus de temps pour terminer.
rdtsc
2
@rdtsc Attention maintenant. Sean écrit de l' énergie , pas du pouvoir .
pipe
@rdtsc Vous confondez pouvoir et énergie. En premier ordre, une tâche spécifique nécessitera un nombre fixe de cycles d'horloge. Pensez à la façon dont une batterie répondra à votre tâche aux deux points de fonctionnement différents.
Sean Houlihane
Ahh oui. Je travaille toujours sur la première tasse de café ici. :) Je devrais le mesurer, mais je pense que l' énergie utilisée sera en fait un peu plus avec une fréquence d'horloge inférieure, car un processeur moderne a tellement d'événements périodiques à gérer par seconde. Il y en aura plus pour une horloge plus lente, et plus signifie un temps plus long pour terminer la tâche.
rdtsc
Quelques antécédents liés à la lecture anandtech.com/show/9330/exynos-7420-deep-dive/6
Sean Houlihane