CMOSマイクロプロセサのダイナミック電力

つまり、CMOS回路は出力がLow→High→Lowというようにスイッチして負荷容量を充放電することで電力を消費する。一方、スイッチしていない場合は、理想的なCMOS回路では電力を消費しない(ただし、現実のCMOS回路ではリーク電流が流れるため、スイッチしない場合にも電力を消費するが、これについては項を改めて説明する)。

負荷容量Cを電源電圧Vまで充電し、さらにそれを放電すると、良く知られているように、CV2fのエネルギーを消費する。ここでfは1秒間の充放電回数である。先にあげた50μmの配線で4個の論理ゲートを駆動する場合、電源電圧が1.2V、f=2.5GHzとすると1秒間の消費エネルギーは9~14fF×1.2×1.2×2.5GHz=32~50×10-6(J)となる。

クロック配線は毎サイクルLow→High→Lowと変化するので、この計算で良いが、一般の論理回路の出力は各サイクルにはLow→High、あるいはHigh→Lowの変化というのが普通で、まったくスイッチしないサイクルも多い。そこで、消費エネルギーをα×CV2f/2と表すのが一般的である。ここでαはスイッチする確率で、毎サイクルLow→High、あるいはHigh→Lowの1回の変化があるケースではα=1.0で、2サイクルに1回のスイッチの場合はα=0.5である。また、クロックのように1サイクルに2回スイッチする場合はα=2.0となる。これらの波形を図1.17に示す。

図1.17 クロックと毎サイクル1回変化する信号、2サイクルに1回変化する信号

ゲート(論理回路)の出力が毎サイクル ランダムにHigh、Lowとなると考えると、High→High、Low→Lowとスイッチしないケースが半分、High→Low、Low→Highと変化するケースが半分となり、この場合はα=0.5となる。しかし、プロセサ全体でみると、整数演算器は使われているが、浮動小数点演算器は遊んでいるとか、ロード、ストア命令が出てこなければデータキャッシュはアクセスされないなど、常に全部の論理回路が動いているわけではない。また、より細かいレベルでも動く部分と動かない部分があり、プロセサの論理回路全体でみるとαは0.05~0.1程度というのが一般的な値である。一般に複雑なマイクロアーキテクチャを持つプロセサではαは小さ目で、単純な構造で全部のユニットが動く比率が高いプロセサではαは高めになっている。

前述の例で1つのゲート(論理回路)の出力の負荷容量が14fFで電源が1.2V、クロックが2.5GHzとすると、1秒間の消費エネルギーは0.05~0.1×50×10-6/2=1.25~2.5(μJ)となる。そして、このようなゲートが典型的であるとすると、500万ゲートのマイクロプロセサコア全体では、1.25~2.5μJ×500万=6.25~12.5Wとなる。ただし、これはクロック分配系や、キャッシュなどのSRAMの消費電力を含まない値であり、プロセサコアの消費電力としては、まあ、当たらずとも遠からずな値である。

「コンピュータアーキテクチャの話」が書籍化


書籍「コンピュータ設計の基礎」
著者:Hisa Ando
単行本(ソフトカバー:288P)
定価:2,415円
○本連載の内容が「実際に設計できる基礎」の提供を目指して待望の書籍化。コンピュータの基本設計「アーキテクチャ」。その設計エンジニア「アーキテクト」に送る教科書として、実際にコンピュータを設計する場合に役立つ知識を提供する一冊となっています。(編集部)