CPUでは、計算の速度は発生する熱に影響しますか?


9

例として、最新のコンピューターCPU(Intel、AMDなど)のように、クロック速度を変更できるCPUを考えます。特定のクロック速度で特定の計算を行うと、より遅いクロック速度で同じ計算を行う場合と同じ量の熱が発生しますか?放熱と熱の蓄積は別の問題であることを知っているので、生成された生の熱について話しましょう。


計算速度が速いほど時間がかかりません。
Eugene Sh。

4
ランダウアーの意味で理想的なコンピューターでは、計算によって同じ量の熱エネルギーが生成されると思います。しかし、実際のコンピュータでは、それはおそらく異なるでしょう。特に、すでに生成されていてまだ放散されていない熱の量(つまり、半導体の温度)は、その特性に影響を与え、したがって、熱が発生します。
ハース

もちろん、そうなるでしょう。FPGAデザインをいくつか設計しましたが、低電力である必要がありました。したがって、それほど処理能力を必要としないため、1MHzソースの代わりに10kHzクロックソースを使用しました。
lucas92

2
動的消費電力は、同期クロックのクロック周波数の2乗に比例します。したがって、熱も増加するはずです。
Mitu Raj

1
@MITURAJ、動的消費電力はクロック速度に比例します。クロック速度の2乗ではありません。電圧の2乗に比例します。
mkeith

回答:


14

クロック速度に加えて、実際の「大きな」CPU(キャッシュ、MMU、TLB、パイプライン実行、SIMDなどを備えたもの)では、発生する熱量のもう1つの重要な要素は、命令フローがどれだけ適切に利用されるかです。使用可能なCPUリソース。メモリを大量に消費するプログラムを実行する場合、ほとんどの場合、CPUはデータが不足して何も実行しないため、生成される熱は比較的低くなります。タイトなループを持つ純粋な計算コードは、さらに熱くなります。分岐の予測ミスがほとんどなく、SIMDユニットを集中的に使用し、キャッシュを最適に使用するなど、厳密に最適化されたコードを使用すると、さらに多くの熱が発生する可能性があります。

このモードでCPUを操作するように特別に設計されたプログラムがあります-できるだけCPUに負荷をかけます。Prime95はPCの代表的な例です。

実際、利用可能なすべてのCPUコアでPCがすでにPrime95を実行しているときに、CPUを集中的に使用する別のアプリケーション(3Dレンダリングなど)を同時に起動すると、CPUが冷えます。これは、非常に重いPrime95コード(「すべてのトランジスターを照らす」)を、比較的要求の少ないレンダリングコード(多くのキャッシュミスと分岐予測ミスがある可能性が高い)とタイムシェアする必要があるためです。しばらくしてクールダウンします)。

考慮すべきもう1つのことは、通常、各CPUに許容可能なクロック速度と、各速度に関連付けられたコア電圧のテーブルがあることです。CPUがその電圧で安定するとメーカーが判断したため、低いクロックも低い電圧と一致します。消費電力は、クロック速度にほぼ比例して変化しますが、電圧に二次的に変化します。


1
電力は、指定されたクロック速度に対して電圧に対して 2次関数で変化します。通常、電圧を使用してクロックレートを線形的に変化させます。その結果、電力は立方対電圧であり、クロック速度は線形です。したがって、消費電力はクロック速度に対して2次です。
MooseBoys、2018年

SIMDは、AVX512を広範囲に使用すると、一部のCPUが過熱するほどの熱を発生させる可能性があります。+1は、電圧の増加も関連していることを指摘します。
フォレスト

1
@MooseBoys、真、非常に良い点。ただし、実際には、フルスピードのCPUにVcore = 1.2Vが搭載されている場合、クロック速度を半分にしてもVcore = 0.6は許容されないため、動作しません:)
anrieff

@anreiff私は覚えていなかったかもしれませんが、いくつかの最新のIntelチップは、アイドル状態のときに0.8V程度までステップダウンすると思います。ただし、その時点ではそれらは約700MHzにすぎず、キャッシュはおそらくオフになっています。
mbrig

問題は、CPUクロック速度とVcoreが比例している場合に予想されるように、それらが0V近くにならないことです。3.5GHz@1.2Vと0.7GHz@0.8Vに似ています。速度の低下は、電圧よりも電力損失への影響が大きくなります。たとえ前者が線形的にそれだけに影響を与えるとしてもです。
anrieff

5

消費電力は、クロックの遷移レートと有効なコンデンサゲートの切り替えによる導通損失に比例します。ただし、温度上昇は、ワットあたりの摂氏で表した消費電力と有効熱抵抗の積に比例するため、エネルギーに依存せず、消費電力に応じてより低温または高温で動作し、長時間にわたってその電力を分散させない場合があります。クロック速度に伴う温度上昇が、1より大きい電力の一部の電力であることを示す公式がある場合があります。


4
  • 動作周波数が低いほど、ワット数は低くなります。

  • 同じコア電圧では、総エネルギーは低いクロック周波数で高くなります。

  • しかし、コア電圧が周波数で調整される場合、総エネルギーは少なくなる可能性があります。

  • I / O操作の待機にほとんどの時間を費やすアルゴリズムの場合、実行時間はコアクロック周波数に関係なくほぼ一定です。したがって、計算に必要な総エネルギーは、クロック周波数に比例して増加します。


    CPUの消費電力は2つの部分で構成されます。

1)静的電流引き込み(I_static)。特定の電源電圧と温度では、CPUの動作に関係なく、この電流は一定です。

CMOSテクノロジーを使用して作成されたCPUは、数千または数百万のMOSFETトランジスタで構成されています。静的な電流引き込みは、主に何百万ものMOSFETトランジスタのオフ状態のリーク電流の組み合わせによるものです。

  • 静的電流引き込みは、通常、電源電圧が増加するにつれて増加します。

  • 通常、CPUの温度が上昇すると、静的消費電流が増加します。

  • 静的電流引き込みは、多くのデバイスにとって動的電流引き込みよりもはるかに小さいです。

2)動的電流引き込み。CMOSプロセスを使用して構築されたプロセッサの場合、トランジスタがオン/オフ状態を切り替えるときに動的電流が発生します。

  • 指定された電源電圧の場合、動的電流引き込みは通常、周波数に正比例します。

  • 動的電流引き込みは、供給電圧が増加するにつれて増加します。

その理由は以下の通りです。CPUの各MOSFETトランジスタには、一定の容量が関連付けられています。MOSFETが切り替わるたび。その容量を充電/放電するには、電荷Q = C * Vが必要です。

各トランジスタの動的電流引き込みは、I_dynamic = C * V * fです。

命令が実行される頻度に関係なく、特定のCPUでの特定の一連の操作(キャッシュとメモリの動作が同じであると想定)は、周波数に関係なく、動的な電流引き込みにより、一定量の総電荷(Q_program)を消費します。命令が実行される場所。

しかし、命令の実行速度が遅いと、時間が経過するため、静的電流による総充電量が高くなります。

数学的には次のように書くことができます...

W =(I_dynamic + I_static)* V_supply

E = W *時間= Q_program * V_supply + I_static * V_supply *時間

クロック周波数が0に近づくと、ワット数は固定値に近づきますが、プログラムの計算に必要なエネルギーは無限に近づきます。

(CPUトランジスタの静電容量に基づいて)Q_programが特定の電源電圧と一連の動作に対して固定されている場合、最近のCPUはクロック周波数を下げることによってどのように電力を節約しますか?答えは、ほとんどの最近のCPUには、調整可能なコア電圧レギュレータがオンボード(またはコンパニオンチップ)に含まれているということです。クロック周波数を下げると、コア電圧も下げることができます。Q_program(およびE_program)は、電源電圧に比例して低下します。

低い電圧ではトランジスタのスイッチング時間が長くなるため、CPUは高い周波数では低い電圧を使用できないことに注意してください。

ワット数は、電圧(2乗)と電流の両方に比例します。したがって、電圧が周波数と同時に低下すると、ワット数は周波数の3乗で低下します。


1

トランジスタは熱として浪費されるエネルギーを使用します。静的エネルギーと動的エネルギーの2つのメカニズムがあります。静的エネルギーは一定であり、動的(スイッチング)エネルギーは、状態が変化するたびに発生します(0-> 1または1-> 0)。通常、動的(スイッチング)エネルギーは、静的エネルギーよりも大きな熱源です。実行する計算には、同じ数のクロックサイクルがかかり、クロック速度に関係なく、同じ数のトランジスタビットが反転します。したがって、動的熱は両方の状況で同じです。静的熱は...静的です。つまり、要約すると、CPUがこの1回の計算のみを実行していると仮定すると、エネルギー/熱消費量は、所定の期間で平均した場合とまったく同じです。


あなたは真実の端に乗っていますが、私はそれを乗り越えさせます。CMOSのエネルギーレベルは、動作周波数とともにほぼ直線的に上昇しますが、電圧とエネルギーは4倍になります。速度を含まない厄介なI2R方程式。
Sparky256

OPは、クロック速度について純粋に尋ね、電圧の低下については触れていません。
TopCat 2018年

上記の回答は、コア電圧のペナルティについて述べています。私はあなたがその問題に答える必要があることを示唆しなかった。私はコメントを書いているだけでした-コメントボックスで。
Sparky256

問題は、電力や温度ではなく、HEAT(ジュールで測定)に関するものでした。熱はエネルギーの一種です。入力ソースから受け取って出力負荷に送られる少量のエネルギーを除いて、デバイスで消費されるエネルギーはすべて熱になり、最終的には放散されます。CMOSロジックでは、マシンの状態が変化すると、エネルギー消費により熱が発生します。通常、ゲートが0と1の中間にあるその瞬間に、クロックサイクルごとに1回です。クロックサイクル数。
richard1941

1

説明したシナリオでは、計算に必要なエネルギーはクロック速度に依存しません。しかし、熱は「フワフワ」な言葉になることがあります。計算に1ジュールかかるとします。1秒で行うと、1ジュール/秒= 1ワットになります。しかし、2秒かかる場合は、1ジュール/ 2秒= 0.5ジュール/秒= 0.5ワットです。

エネルギーがより早く放出されるため、計算がより速く行われると、プロセッサーは間違いなくより高い温度に到達します。それ以上のことを言うのはあまり意味がないと思います。

ああ、私があなたに与えた数が現実的であることを意図していないことを除いて。それは単なるコンセプトです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.