[gull] APM/ACPI et consommation/chaleur CPU

Escario Julien pandemik at asylog.net
Sun Jun 8 15:20:18 CEST 2003


> Ma question sera simple: un processeur comme un Duron ou Celeron est-il
> conçu pour baisser sa consommation -- par exemple en baissant sa vitesse
> ou en passant en mode économique -- via une interface APM ou ACPI?

Trés certainement. Il existe des technologies comme speestep ou autres qui
sont réellement dédiées à ce genre de tâches.
Le problème dans ton cas est de pouvoir réveiller ensuite le processeur
par une(des) interuption(s) qu'ils faudra définir.
Je ne sais pas pour les processeurs i386 mais en général TOUT les
processeurs possèdent au moins les modes NORMAL, DOZE (IDLE) et SLEEP.

En mode DOZE : le clock est mis à zéro et le processeur attend une
interruption (écriture sur un de ses ports).
En mode SLEEP : il faut un reset hardware pour repartir, donc réalisé par
un circuit externe.

L'idéal serait de pouvoir choisir entre une clock externe et une clock
interne (certains procs le font). Cela permets de passer sur le clock
interne, changer le clock externe (il faudrait prévoir plusieurs
fréquences) puis repasser sur le clock externe inférieur et ainsi
consommer nettement moins.

> Est-ce supporté par les cartes-mères ?

Certainement mais à voir sur chaque carte mère.

> Quel est le support Linux pour cela ?

CONFIG_APM_CPU_IDLE:
Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
On some machines, this can activate improved power savings, such as
slowed CPU clock rate, when the machine is idle. These idle calls
are made after the idle loop has run for some length of time (e.g.,
333 mS). On some machines, this will cause a hang at boot time or
whenever the CPU becomes idle. (On machines with more than one CPU,
this option does nothing.)

En gros un processeur doit toujours faire qqchose donc quand il n'a rien à
faire il tourne dans une boucle. En activant ça, le kernel "éteint" le
processeur dans les périodes d'inactivité.

C'est doit aussi être possible avec ACPI mais je ne me suis pas bien
penché entre les différences entre APM et ACPI.



Julien Escario
---------------------------------------
$A = eval {($A*$A-1)/($A-1)} || die 1;
L'incrémentation ou la vie !
---------------------------------------





More information about the gull mailing list