Question Pourquoi un processus «inactif» ne génère-t-il pas (beaucoup) de chaleur?


Si je comprends bien, un processeur en cours d'exécution ne peut jamais réellement rien faire. Même s'il n'y a pas de 'job' actif en cours d'exécution, il y aura toujours un «processus inactif» en cours d'exécution, pour que le processeur continue de fonctionner.

Alors, ma question est la suivante: pourquoi ce processus inactif ne génère-t-il pas beaucoup de chaleur, comme le font les autres processus? Pourquoi tous les processeurs / GPU ne sont-ils pas toujours à leur température maximale de fonctionnement (une fois qu'ils ont démarré)?


3
2017-12-05 14:27


origine


C'est simple. Moins de transistors sont effectivement utilisés et le processeur peut fonctionner à des niveaux de puissance inférieurs. - Jaroslav Kucera
@JaroslavKucera J'imagine que j'espérais quelque chose d'un peu plus profond que «ça utilise moins de transistors». Pouvez-vous expliquer davantage ces états de puissance et pourquoi le processus inactif est capable de fonctionner dans un état d'alimentation inférieur à celui d'autres processus? - Time4Tea
Je trouve cela un sujet intéressant. Regardez ici: en.wikipedia.org/wiki/Idle_(CPU) car il discute quelques options. Il semble que cela dépend vraiment du processeur en question ainsi que de l'OS - Eric F


Réponses:


Le processus inactif utilise une instruction d'arrêt, que la plupart des processeurs ont précisément pour cela.

Lorsqu'il est arrêté, le processeur ne s'exécute pas, mais attend une interruption qui le relancera.

Sur les processeurs Intel, ce lien détaille le HLT instruction.


3
2017-12-05 14:59



Ainsi, lorsque le système est «inactif», le processeur (qui a une instruction d'arrêt) est en fait ne pas en cours d'exécution - il est dans une sorte d'état suspendu? Donc, ma déclaration selon laquelle un processeur doit toujours fonctionner quelque chose était faux? - Time4Tea
Je sais que cela est vrai pour Windows, mais est-ce vrai pour d'autres systèmes d'exploitation comme Linux et MacOS? Est-ce qu'AMD fait cela aussi? Une bonne réponse, juste quelques autres pièces auxquelles il faut répondre je pense - Eric F
@EricF - Comme cela se produit sur le système d'exploitation de l'interrogateur, c'est presque certainement l'explication. Je crois que les premières versions de Windows (9x) ne l'utilisaient pas (je me souviens d'une application en boucle qui l'a fait à la place), mais cela a été le cas dans WinNT et ses descendants. Je suis certain que c'est vrai pour Linux, et donc pour MacOS, basé sur Linux. - AFH
@ Time4Tea - Oui. Je définirais probablement le CPU comme actif, mais pas en cours d'exécution. - AFH


Les processeurs / GPU actuels sont (toujours) basés sur CMOS. Une partie importante de la consommation d'énergie dans les circuits CMOS est causée par des signaux numériques modifiant leurs valeurs (consommation d'énergie "dynamique").

Le "processus inactif" essaie de réduire autant que possible les modifications du signal, c'est-à-dire en exécutant continuellement la même instruction - généralement appelée la non-opération (NOP). En conséquence, le CPU / GPU consomme moins d'énergie.

De plus, le CPU / GPU détecte qu'il fait réellement "très peu" si seules les instructions NOP doivent être exécutées. Ainsi, l'horloge du processeur est étranglée et pour certaines parties du CPU / GPU, le signal d'horloge peut même être désactivé ("synchronisation d'horloge") et / ou la tension d'alimentation de ces pièces peut être réduite ou même réduite à 0.

Cette dernière mesure réduit également la consommation électrique "statique" ("fuite") des circuits CMOS, qui augmente avec des tailles de caractéristiques CMOS plus faibles et des niveaux de tension d'alimentation nominale plus faibles.


1
2017-12-05 15:10



Plus précisément, comme AFH souligne dans une réponse précédente, pas le NOP, mais l'instruction HLT (halt) est exécutée pendant le processus d'inactivité. - Thomas Popp