web-dev-qa-db-ja.com

CPU周波数を下げるとバッテリー寿命が延びるのはなぜですか?

周波数が高いほどタスクが速く完了するので、周波数に関係なくほぼ同じバッテリー寿命があるべきではありません。したがって、高い周波数で実行しているにもかかわらず、CPUは低い周波数で実行している場合よりも使用されません。周波数 ?

2
user256743

実際、最近は一般的に周波数を下げるしないバッテリーの電力を節約する。

パワーとスピードの関係が線形ではないため、これを行っていました。 50%の速度で実行しているからといって、50%の電力しか必要としないわけではありません。曲線は一般に指数関数的である傾向があるため、速度を90%に下げることで20%の電力を節約できますが、80%に下げると、電力の節約は30%にしか増えず、50%の速度では35%しか節約できません。パワー。したがって、90%の速度で実行すると、タスクの実行に10%長くかかる可能性がありますが、それは20%の省電力で補われる以上のものです。 50%の速度で実行しようとすると、2倍の時間がかかるため、より多くのエネルギーが必要になりますが、35%しか節約できません(2 x 0.65 = 1.3xエネルギー)。

ただし、最近のプロセッサには、アイドル時に自動的に入ることができるディープスリープ状態があり、その間、消費電力はゼロに低下します。それは急いで仕事を終わらせることをより良くするので、それは眠りに戻ることができます。たとえば、50%の速度で1時間単位を費やすと、0.65エネルギー単位のコストがかかりますが、100%の速度で0.5時間を費やし、残りの半分の睡眠は0.5エネルギーしかかかりません。

これらの状況の例外は、実際には何も行わずに、取得できるCPU時間をすべて浪費することを好む愚かなアプリケーションがある場合です。その場合は、周波数を手動で下げることで多くの電力を節約できます。これは、電力を節約し、タスクを完了するのに時間がかからないためです。

4
psusi

そうあるべきだと思われるかもしれませんが、そうではありません。最終的には、CPUが時間の経過とともに使用する電力についてではありません。それは、タスクごとに使用される電力、つまり効率についてです。

1マイル離れた店に走る必要がある2人の人がいるとしましょう。 1つは歩くことを決定し、もう1つは実行することを決定します。ランニングはウォーキングよりもエネルギーを消費しますが、より速くそこに着きます。しかし、彼らが到着したときに両方の人を見ると、ランナーははるかに疲れています。これは、ランナーが同じ仕事をするためにウォーカーよりも比例して多くのエネルギーを使用したためです。歩行者は彼らのエネルギーでより効率的でした。

CPUも同じように機能します。サイクルごとに使用される電力量の観点から考えることができます。低電力モードで実行されているCPUは、タスクの実行に時間がかかりますが、同じジョブを実行するためにサイクルあたりの消費電力が少なくなります。

1
Alex McKenzie