さて、分析の前にちょっと基本のおさらいである。CPUの消費電力を考える場合、大きくStatic PowerとDynamic Powerに分けられる。Static Powerというのはリーク電流などが主体となるもので、要するにCPUにクロックを一切供給しない(=0Hzで動いている)状態であっても消費される電力となる。対してDynamic Powerというのはトランジスタのスイッチングを行う際に消費されるもので、こちらは動作周波数に比例して消費電力が大きくなるのが基本だ。

また電圧に関しては、Dynamic Powerは電圧の2乗に比例して大きくなるので、電圧を下げるのが消費電力低減に効果があるが、Static Powerに関しては必ずしもこれが当てはまるとは限らない。確かにリーク電流に起因する消費電力そのものは電圧を落せば2乗で効くのだが、電圧を下げるほどリーク電流が発生しやすくなる、という副作用があるからだ。このため、省電力を狙ったプロセスの中には敢えて動作電圧を上げることでリークを減らすというアプローチを取るものも少なくない。また、様々なバイアス電圧を掛けるといった対策もあるが、これらはここの本論では無いので措いておく。とりあえず消費電力を考える際には、Static PowerとDynamic Powerの2つを考える必要がある事だけ、理解してもらえば良い。

さてこれを踏まえた上で、グラフ1の2つの待機モードにおける消費電力を見てみよう。Windows Vistaの場合、Power SavingモードではCPUの省電力機構がフルに使われる事になる。Athlon 64 X2なら1GHz(200MHz×5)、Core 2 Quadの場合だと1.6GHz(266MHz×6)、1.3GHz(200MHz×6.5)といった動作周波数になり、対してHigh PerformanceモードではどのCPUも2.6GHzないし2.66GHzで稼動する。これを消費電力の積み重ねで見てみよう。

図1

図1は、Athlon 64 X2の場合である。Staticのみ、というのは電源を入れてもまだクロックが供給されていない(つまりBIOSすら上がっていない、POSTの開始以前)なので測定は不可能である。現実問題として測定できるのは、Windowsが起動して全てが待機状態になってからである。ただPower Savingモードにおいても、実際にはコアは1GHzで動作する他、ノースブリッジ機能(CPUに内蔵されたメモリコントローラやCrossBar/SRQなど)は動作しており、こうしたもののDynamic Powerも一緒に計測されることになる。つまりPower Savingモードでの108Wとは、

マザーボード+ノースブリッジのStatic/Dynamic Power+CPUコアのStatic Power×2+CPUコアのDynamic Power(1GHz@1.152V)×2

の合計ということになる。

同じように、High Performanceモードにおける待機の124Wは、

マザーボード+ノースブリッジのStatic/Dynamic Power+CPUコアのStatic Power×2+CPUコアのDynamic Power(2.6GHz@1.376V)×2

となる。これとPCMark05の違いは、CPUがHLT命令を実行して事実上止まっているか否か、という点だ。つまり待機時は割り込みが入るまで、CPUはひたすら(一番消費電力の少ない)HLT命令を実行しており、余分な回路は一切動かない。対してPCMark05実行時は、パイプラインのほぼ全てがフル稼働することになる。

この2つの式を引き算すると、

CPUコアのDynamic(1GHz@1.152V)×2 - CPUコアのDynamic(2.6GHz@1.376V)×2 = 16W

ということになるわけだ。Dynamic Powerは上でもちょっと書いたが、

Power=c×V^2×f

となる。ここでcは静電容量、Vはコア電圧、fが周波数である。コア電圧の2乗を計算に入れないといけないのがちょっと面倒だが、ここからcの値を算出可能である。具体的に言えば、

c×(1.376^2×2.6 - 1.152^2×1)×2=16 (←最後の×2は、Dual Coreだから)

なので、

c=2.2248....

といった係数が求められる。このcをそのまま使い、Dual Coreにおける1GHzあたりの待機電力をそれぞれ求めると、1.152Vなら5.9W、1.376Vならば8.4Wと算出される。

つまり、

マザーボード+ノースブリッジのStatic/Dynamic Power = 108 - 5.9 = 102.1W

という計算になるわけだ。

また2.6GHzにおける待機時とフル稼働時のDynamic Powerの差は、

167 - 124 = 43W

と計算できることになる。