例として、最新のコンピューターCPU(Intel、AMDなど)のように、クロック速度を変更できるCPUを考えます。特定のクロック速度で特定の計算を行うと、より遅いクロック速度で同じ計算を行う場合と同じ量の熱が発生しますか?放熱と熱の蓄積は別の問題であることを知っているので、生成された生の熱について話しましょう。
例として、最新のコンピューターCPU(Intel、AMDなど)のように、クロック速度を変更できるCPUを考えます。特定のクロック速度で特定の計算を行うと、より遅いクロック速度で同じ計算を行う場合と同じ量の熱が発生しますか?放熱と熱の蓄積は別の問題であることを知っているので、生成された生の熱について話しましょう。
回答:
クロック速度に加えて、実際の「大きな」CPU(キャッシュ、MMU、TLB、パイプライン実行、SIMDなどを備えたもの)では、発生する熱量のもう1つの重要な要素は、命令フローがどれだけ適切に利用されるかです。使用可能なCPUリソース。メモリを大量に消費するプログラムを実行する場合、ほとんどの場合、CPUはデータが不足して何も実行しないため、生成される熱は比較的低くなります。タイトなループを持つ純粋な計算コードは、さらに熱くなります。分岐の予測ミスがほとんどなく、SIMDユニットを集中的に使用し、キャッシュを最適に使用するなど、厳密に最適化されたコードを使用すると、さらに多くの熱が発生する可能性があります。
このモードでCPUを操作するように特別に設計されたプログラムがあります-できるだけCPUに負荷をかけます。Prime95はPCの代表的な例です。
実際、利用可能なすべてのCPUコアでPCがすでにPrime95を実行しているときに、CPUを集中的に使用する別のアプリケーション(3Dレンダリングなど)を同時に起動すると、CPUが冷えます。これは、非常に重いPrime95コード(「すべてのトランジスターを照らす」)を、比較的要求の少ないレンダリングコード(多くのキャッシュミスと分岐予測ミスがある可能性が高い)とタイムシェアする必要があるためです。しばらくしてクールダウンします)。
考慮すべきもう1つのことは、通常、各CPUに許容可能なクロック速度と、各速度に関連付けられたコア電圧のテーブルがあることです。CPUがその電圧で安定するとメーカーが判断したため、低いクロックも低い電圧と一致します。消費電力は、クロック速度にほぼ比例して変化しますが、電圧に二次的に変化します。
消費電力は、クロックの遷移レートと有効なコンデンサゲートの切り替えによる導通損失に比例します。ただし、温度上昇は、ワットあたりの摂氏で表した消費電力と有効熱抵抗の積に比例するため、エネルギーに依存せず、消費電力に応じてより低温または高温で動作し、長時間にわたってその電力を分散させない場合があります。クロック速度に伴う温度上昇が、1より大きい電力の一部の電力であることを示す公式がある場合があります。
動作周波数が低いほど、ワット数は低くなります。
同じコア電圧では、総エネルギーは低いクロック周波数で高くなります。
しかし、コア電圧が周波数で調整される場合、総エネルギーは少なくなる可能性があります。
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乗で低下します。
トランジスタは熱として浪費されるエネルギーを使用します。静的エネルギーと動的エネルギーの2つのメカニズムがあります。静的エネルギーは一定であり、動的(スイッチング)エネルギーは、状態が変化するたびに発生します(0-> 1または1-> 0)。通常、動的(スイッチング)エネルギーは、静的エネルギーよりも大きな熱源です。実行する計算には、同じ数のクロックサイクルがかかり、クロック速度に関係なく、同じ数のトランジスタビットが反転します。したがって、動的熱は両方の状況で同じです。静的熱は...静的です。つまり、要約すると、CPUがこの1回の計算のみを実行していると仮定すると、エネルギー/熱消費量は、所定の期間で平均した場合とまったく同じです。