こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

CPU クロック数があがると何故消費電力があがるの?

CPUの消費電力はクロック数と比例すると聞いたことがあります。
なぜ、クロック数に比例して消費電力があがるのでしょうか?

単純に考えると、消費電力はトランジスタがオンのときに電力を消費しているのが原因な気がします。
よって、このトランジスタをオン-オフしたからといって、これにより消費電力が増えると考えるのはつじつまがあわない気がします。

回答よろしくお願いします。

投稿日時 - 2005-11-24 12:07:52

QNo.1798383

暇なときに回答ください

質問者が選んだベストアンサー

どうしてリーク電流による消費電力と、CPUの動作による消費電力をごっちゃにしてるんだ。
http://pcweb.mycom.co.jp/news/2003/04/04/21.html
によれば、CPUの消費電力Pは
P=NaCV^2f+NtIlV
P:消費電力
Na:動作ノード数
Nt:全ノード数
C:ノード容量
V:電源電圧
f:周波数
Il:ノード当たりのリーク電流
ということになる。
んで、見ればわかるけど後半のリーク電流の部分はクロックと関係ない。
(もちろん高い周波数を実現しようとすれば、電圧の閾値を下げる必要がありリークは増えますが、
これは質問とは関係なく、設計上の問題)
んで、問題なのは前半部分。
http://pcweb.mycom.co.jp/column/architecture/001/
ここに詳しく乗ってるけど、
最初のNaは動作しているノードの数なので消費電力がその倍数になるのは当然。
Cのノード容量はそのノードごとについている負荷容量。要はコンデンサ。
実際には配線容量や次段の論理回路の入力容量など。
出力をHighにするにはこれを充電してやる必要がある。
で、これが1回あたりC*V^2のエネルギーが必要。
それでノードが出力を行うのは1クロックごと。
つまり、
動作しているノードの数×1回の充放電に必要なエネルギー×動作回数
=NaCV^2f
というのが、CPUの動作に関わる部分の消費電力ということになる。

結局CPUのノードがhighの値を出力するには、配線容量や次段の論理回路の入力容量なんかを充電してやる必要があり、
そのノードが出力を行うのはクロックごとに出力が行われるので、
消費電力はクロックに比例する。

投稿日時 - 2005-11-24 19:30:22

お礼

回答どうもありがとうございました。
リンク先の解説大変参考になりました。

投稿日時 - 2005-11-24 20:42:01

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(8)

ANo.7

No1です。
http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20040715/147310/
>リーク電流による消費電力の増加は,90nm世代のCPUで深刻化した問題だ。この間隔が短いほど,電流が流れやすくなりリーク電流が発生しやすい。
>しかもトランジスタのスイッチング速度,つまり動作周波数を上げるには,そもそもトランジスタに電流が流れやすいように半導体を設計しなくてはらない。

この辺りを読んでいただければなんとなく分かると思うのですが、そんなに微々たる物では無いと思います。
シリコンの中の配線間の静電容量がどの程度なのかしりませんが、配線間の距離が短くなればなるほどCは大きくなります。手配線した時に10ピコ、20ピコは当たり前なので90nm間隔の配線でも結構なロスがでてると思います。
前にどこかの記事で最近のCPUの消費電力の80%?はリーク電流だという記事を見ました。(80%はかなり曖昧な記憶です。)
なので、リークがあって誤動作するのではなく、リークがあっても誤動作しないように設計しているんじゃないでしょうか?

参考URLより消費電力115Wとします。仮に1.8Vだとして、流れる電流は約64Aです。
他の方が6000万のトランジスタが入っていると言っているので、それで割ると一つ辺りのトランジスタに流れる電流は1μA程度と言う事になります。
その8割がリークだとして、0.8μA、これが2GHzのCPUだとしたら一つあたり0.00003pFの静電容量と言う事になると思うのですが、(計算間違ってたらすいません)これならなかなか現実的な数字だと思うのですが、どうでしょう?
他にもロスもありますので一つ辺りのCはもっと減ると思いますので、消費電力の増加=ほぼリークと言って良いのではないかと思うのですが。

投稿日時 - 2005-11-24 17:06:06

お礼

度重なる回答どうもありがとうございした。

投稿日時 - 2005-11-24 20:39:34

ANo.6

#3です。
>CPUの消費電力はクロック数と比例する
というのは、いわゆるオーバークロックの話だったんですね。
私は別個のCPU(2Gと3Gのように)のことだと誤解していたので、前述の回答をいたしました。

その訂正回答は既に#5の方が書いてくださっていますので、多少の補足だけに止めておきます。

オーバークロックで外部から高いクロックを与えたとしても、1パルスの波形の、等脚台形の両脚の傾きは変化しません。
台形波形の上底と下底が短くなるだけです。
つまりデジタル回路での電力消費の最大要因である、コンプリメンタリのスイッチング切替時(台形の等脚部)の数が単純に増えることが、原因だと思います。

投稿日時 - 2005-11-24 15:49:57

お礼

度重なる回答どうもありがとうございます。
回答参考にさせていただきます。

投稿日時 - 2005-11-24 20:25:43

ANo.5

質問者はトランジスター関係の知識をお持ちのようなので、それを前提でお話します。

CPUの内部回路は ON←→OFF で動くのではなく +電位へON←→-電位へON で動いていると考えてください。
入力端子が1つ出力端子が1つでトランジスタ2個の回路を組んで、
上記動作をさせると 出力が変化する瞬間にトランジスタが2個とも(完全でないにしろ)ONになってしまうのです。
その時、+電位(+電源)から-電位(-電源)へ漏れ電流が発生します。
これが消費電力が増える原因です。

低クロックCPUの場合、電流が漏れる回数が少ないので、「本当にトランジスターを動かす電力」に比べて「漏れ電流」が少ない。
高クロックCPUの場合、電流が漏れる回数が多いので、「本当にトランジスターを動かす電力」に比べて「漏れ電流」が多い、
つまり傍から見るとみょ~に電力を消費している、という事です。

投稿日時 - 2005-11-24 15:29:39

お礼

回答どうもありがとうございます。
回答参考になりました。

投稿日時 - 2005-11-24 20:24:24

ANo.4

確かに理論上はトランジスタがオフの状態では電流は流れないことになっていますが、現在のCPUではリーク電流の問題が無視できません。CPU内部には6000万個ほどのトランジスタが作りこまれているわけですから一つ一つのリーク電流はたいしたことなくても、全体としてはかなりのリーク電流が発生しています。

投稿日時 - 2005-11-24 15:12:20

お礼

回答ありがとうございます。
これは大規模化によるリーク電流増大に関することですよね。

投稿日時 - 2005-11-24 20:21:50

ANo.3

デジタル回路では電圧の高い状態を“1”、低い状態を“0”として動作させますが、立ち上がり(0から1への変化)、立ち下がり(1から0)の特性が命であることは、理解されていると思います。

低速のスイッチングの場合、電圧が高く電流が小さくても動きますが、CPUのような高速回路の場合は、電源電圧が高いとスレッショルド(閾値)までの時間がかかるわけで、当然電源電圧を低くして“1”の電圧も低くする必要が出てきますね。
さらに高速応答性を高めようとすると、小さい電流での駆動よりも高い電流の方が有利です。

何かいい例えはないかと考えてもなかなか思いつきませんが、敢えて次のように説明してみます(原理は違うので誤解されないよう)。
白熱電球を光らせる時、最高光度の状態を“1”、暗い状態を“0”とします。
このとき電圧の高く電流の大きい電球を点灯させると、スイッチを押してすぐに点きます。
消費電流を節約するために、この電球に低い電圧をかけると電流も下がりますが、最高光度まではゆっくり変化します。(パッと点くのではなくポワッと点く?)
これではだめなので、低い電圧で光る電球を使い高い電流で光らせると、パッと点くようになります。

高クロックにすると消費電力が増えるのではなく、大きい電流で駆動して高クロックでも動くようにしている、ということだと思います。

投稿日時 - 2005-11-24 13:58:30

補足

お礼の内容で「Vce」と書いてしまいましたが、「Vbe」の間違いです。

投稿日時 - 2005-11-24 14:49:19

お礼

回答ありがとうございます。
高クロックにするためにはトランジスタの応答をあげるためにVgd(Vce)の電圧を十分にとる必要があることは理解できます。
しかし、Vgdは一定以上は必要ないと思いますし、また、ゲート入力インピーダンスは十分高いと思います。
回答者さんの回答では回路規模増大で消費電力or電源電圧があがるという説明にはなっているかもしれませんが、クロックに依存して消費電力があがるという説明にはなっていないと思います。

回答者さんの意図が汲めず、とんちんかんな反論になってたらすみません。

投稿日時 - 2005-11-24 14:48:02

ANo.2

デジタル回路の中でトランジスタはスイッチとして働きます。
このスイッチは、電灯線スイッチと本質は同じですが目的が違います。
電灯線スイッチはオンのとききちんと電流を通し、オフではちゃんと絶縁することが目的ですが、デジタル回路のスイッチの目的は、オンとオフ2つの状態を区別することにあります。
逆に言えば、オンのときに流れる電流は、それがオンだと分かるなら、少ない方が省電力になり、好ましいのです。

一方、スイッチを切り替えるためには、外から何らかのエネルギーを与えてやらなければなりません。電灯線スイッチなら、人の手がそのエネルギー源です。
デジタル回路中のトランジスタはいわば電動スイッチですので、エネルギー源は電気ということになります。

コンピュータでは、なるべく速くデジタルデータを処理したいわけですから、この電動スイッチをできるだけ速く切り替えることが求められます。そうなれば、処理スピードに応じて消費電力も上がっていきます。

投稿日時 - 2005-11-24 12:50:07

お礼

回答ありがとうございます。

>電動スイッチをできるだけ速く切り替えることが求められます。そうなれば、処理スピードに応じて消費電力も上がっていきます
と書かれていますが、結局なぜ「処理スピードに応じて消費電力が上が」るかという点には回答いただていないように思います。

私の国語力が足りず、回答者さんの意図を汲めなかったのだとすれば、申し訳ありません。

投稿日時 - 2005-11-24 14:38:51

ANo.1

コンデンサの影響が一番大きいと思います。
コンデンサは周波数が高くなるほど電流を流してしまいます。配線同士等の意図しないコンデンサが電流を流してしまい、結果消費電力が上がってしますということです。
これはクロックがあがることによりよりできやすくなります。

仮にトランジスタを100HzでON,OFFした時、コンデンサの影響はほとんどありません。
しかし、100MHzでON,OFFしたときにはベース、エミッタ間の浮遊容量がとても大きいものに見えてくるでしょう。

投稿日時 - 2005-11-24 12:43:12

補足

すみません。
回答内容を適当に読んでお礼を書いてしまいました・・・
おっしゃるとおり、ベース・エミッタ間の浮遊容量の問題で高周波においてはトランジスタがオンになりっぱなしになり、電源-GNDショート状態になる。そして、消費電力増加というのは考えられる要因だと思います。
また、配線間のコンデンサ成分で電流を流してしまうとのことですが、そういうことはあるのでしょうか?
消費電力云々より電流が流れるほどリークがあれば、その前に誤動作する気がしますがどうでしょう?

投稿日時 - 2005-11-24 14:51:35

お礼

回答ありがとうございます。
ご指摘のようにコンデンサがあれば、高周波でインピーダンスが低くなると思います。
しかし、外付けコンデンサならいざしらず、シリコン内のコンデンサ容量は微々たるものだと思います。
よって、CPUの消費電力の主たる部分がコンデンサと考えるのは無理があるような気がします。
私の認識違いならすみません。

投稿日時 - 2005-11-24 14:34:46

あなたにオススメの質問