電力の物理 — なぜ電圧を下げると劇的に効くのか
スイッチ1回に払うエネルギーを導出するところから始めて、動的電力の式で電圧だけが2乗で効く理由、Dennardスケーリングとその終焉、60 mV/decadeという熱力学の壁、ダークシリコン、そして専用回路と低精度演算へ向かった必然までを1本の線でつなぎます。最後に推論の電力コストを自分で計算します。
スイッチ1回に、いくら払っているか
CMOS回路は、止まっているとき電気をほとんど使いません。使うのは状態が切り替わる瞬間です。だから消費電力の話は「1回の切り替えにいくら払うか」から始めるのが筋です。
論理ゲートの出力には、次の段のゲート容量と配線容量が付いています。これを合わせて とします。出力を0から1に変えるとは、この を電源電圧 まで充電することです。電源が押し出した電荷は 、電源がした仕事は 。ところがコンデンサに蓄えられるのは
だけです。差額の半分は、充電経路のトランジスタの抵抗で熱になって消えます。そして0に戻すときは、蓄えた が今度は放電経路で熱になる。上げて下げて1往復すると、 がまるごと熱になります。 抵抗値をどれだけ下げてもこの半分は減りません(ゆっくり充電すれば減らせますが、それは遅くするということです)。
つまりこの式は、「コンデンサに実際に残るエネルギー=容量 × 電圧の2乗 ÷ 2」と言っているだけです。電圧を2倍にすると、1回の充電で動かすエネルギーは4倍になる——この2乗が、以降の話をずっと支配します。
動的電力の式
1秒あたりの熱を出すには、1往復ぶんのエネルギーに「1秒間に何回切り替わるか」を掛けます。クロック周波数を 、1クロックあたりに実際に切り替わる割合を (活動率)とすると
つまりこの式は、「1秒あたりの発熱は、動いた回路の数 × 1回ぶんの熱 × 1秒あたりの回数の掛け算だ」と読めます。どれかを半分にすれば熱もそのぶん減る——ただし1つだけ例外があります。
は「無駄に動いている回路の多さ」、 は駆動する容量の総量、 は電源電圧、 はクロックです。この式で決定的なのは、4つの項のうち電圧だけが2乗で入っていることです。周波数を半分にすれば電力は半分ですが、電圧を半分にできれば4分の1になります。
だから省電力設計では、まず電圧を下げられないかを考えます。ただし話はここで終わりません。
電圧を下げると、回路は遅くなる
容量 を電流 で充電するのにかかる時間は 。分子に がいるので、電圧を下げれば充電すべき電荷が減って速くなりそうに見えます。ところが分母の駆動電流のほうが強く効きます。MOSFETがONのときに流せる電流はおおよそ
つまり、電流の蛇口を開けているのは電圧そのものではなく、電圧がしきい値からどれだけはみ出しているか。しかも指数が1より大きいので、そのはみ出しが半分になると、電流は半分よりさらに強く絞られる、ということです。
はチャネルができ始める電圧(しきい値電圧)、指数 は微細なトランジスタで1.2〜1.3、大きなもので2程度です。電流を決めるのは ではなく の余裕分で、 を に近づけると電流が急速に痩せ、遅延が跳ね上がります。
したがって電圧を下げたら周波数も落とさざるを得ません。負荷に応じて両方を動かす仕組みがDVFS(動的電圧・周波数制御)で、スマートフォンからサーバまで広く入っています。ここで が にほぼ比例して動く領域を考えると、
つまり、電圧を下げると「1回ぶんの熱が2乗で減る」のと「1秒あたりの回数も減る」が同時に起きるので、2つの効き目が掛け合わさる、ということです。3乗は新しい物理ではなく、この重ね掛けの結果です。
電圧はおよそ3乗で効く。 電圧を2割下げるだけで電力はほぼ半分になります。逆に言えば、クロックを絞り出すために電圧を上げると、電力は3乗で跳ね返ってくる。ターボブーストの代償がこれです。
電力とエネルギーを混同しない
ここで混乱しやすい点を整理します。 は毎秒の熱ですが、私たちが電気代として払うのは仕事を1つ終えるまでの総エネルギーです。周波数を半分にすると電力は半分になりますが、同じ仕事に2倍の時間がかかるので、総エネルギーは変わりません。
つまり、1回の演算に払うエネルギーは「動いた回路の数 × 駆動する容量 × 電圧の2乗」だけで決まり、それを何秒で終えたかは値札に書かれていない、ということです。
演算1回あたりのエネルギーには が現れません。周波数を落としてもエネルギーは減らない。減るのは電圧を下げたときだけ(そして電圧を下げるために周波数を落とす)。この区別を持っていないと、「クロックを下げたのに電気代が変わらない」という現象が理解できません。
さらにリーク電流は時間に比例して積み上がるので、遅くすればするほど漏れの総量は増えます。ここから「さっさと終わらせて眠らせる(race-to-idle)」ほうが得な領域と、「電圧を下げてゆっくり動かす」ほうが得な領域の境目が生まれます。最適な動作点はどこかにあり、端ではありません。
では、なぜ電圧を下げ続けられなかったのか。ここから先が本題です。
コメント
コメントにはログインが必要です