CMOSスタティック回路の消費エネルギー
これらのCMOS Static論理回路は直流電流の流れる通路が存在せず、通常は電力を消費しない。しかし、次の図1.10のように、出力Xに静電容量(一般に容量と略す)が付くと、容量を充放電するときに一時的に電流が流れる。
図1.10で出力Xが0Vの状態から、トランジスタp1がオンの状態に切り替わると、電源Vddからp1を通して負荷容量Clを充電する電流が流れる。この負荷容量の充電量は電源電圧をVddとすると、Q=Cl×Vddである。そして消費エネルギーは(Cl×Vdd)2/2となる。このエネルギー消費は出力状態が変化する場合だけに起こるので、ダイナミックな電力消費とも言われる。
この充電電流であるが、大きな電流を流せるPMOSトランジスタを使えば実線のカーブのようになり、電源から供給する電流は大きいが流れる期間は短い。一方、小さなトランジスタを使えば破線のようになり、電源から供給する電流は少ないが時間が掛かる。大きなトランジスタを使ってスイッチ速度を速めようとすると、大きな電流が流れるので消費電力もそれに比例して大きくなると思っている人も多いのであるが、それは間違いである。充電電流の時間積分が電荷であるので、トランジスタのサイズが大きくなっても電流の積分の値は変わらない。
ただし、負荷容量Clの中にはトランジスタp1自体のドレインとゲート間の容量が含まれており、これはトランジスタのサイズWに比例して増加する。また、p1のゲート容量(ゲート-ドレイン、ゲート-ソースなど)が増加することにより、このインバータを駆動するする前段の論理ゲートの負荷容量が増えるという点では消費電力は増加するのであるが、これらは2次的な効果である。
負荷容量の内訳
一般にテキストでは図1.10のように出力Xとグランドの間に負荷容量が接続されるという絵が描かれている。この場合、出力XがLow→Highと変化すると充電のために電源端子から電流が供給され、一方、グランド端子にはリターン電流が流れる。しかし、出力がHigh→Lowと変化する場合は、トランジスタn1を通して負荷容量Clの両端を接続するので、負荷容量に蓄えられたエネルギーはトランジスタp1の中で熱に変わって消費されるだけで、電源やグランド端子には電流は流れない。これは本当であろうか?
負荷容量Clであるが、実際のVLSIチップの中では、駆動すべき次段の論理回路のゲート入力とそこまで接続する配線の寄生容量が主要な要素を占める。ゲート容量であるが、CMOS Static回路では入力はPMOSとNMOSのトランジスタのゲートに接続される。
トランジスタのゲート容量は、ゲートとソースの間の容量Cgsとゲートとドレインの間のCgdがある。正確にはゲートと基板(ボディ)間のCgbもあるが、これはCgd、Cgsに比べて小さいので省略する。そして図1.12に示すようにPMOSトランジスタのCgsは電源、NMOSトランジスタのCgsはグランド側に接続されており、Cgdは出力XがHighの場合はp1を通して電源に接続され、Lowの場合はn1を通してグランドに接続される。なお、Cgs、Cgdはトランジスタの動作状態に依存するので一定の容量値ではない。
ということで入力から電源に接続されている容量がいくらで、入力からグランドに接続されている容量がいくらかを正確に求めることは簡単ではないが、平均的に見て出力がHighとLowになる回路数が同じとするとCgdについては電源に接続される場合とグランドに接続される場合が半々である。そして、Cgsについてはそれぞれ電源とグランドに接続されているのでこれも半々とみると、入力容量の半分は電源に、残りの半分はグランドに接続されていることになる。
筆者の経験では、フリップフロップの中身も分解して考えると、プロセサの(SRAMを除く)80~90%のトランジスタはインバータを作るのに使われている。そしてインバータの場合はトランジスタの駆動能力をバランスさせるためには、NMOSよりサイズの大きなPMOSトランジスタが使われるので、完全に半々ではなく電源側に接続されているCgsの方がすこし多めになっていると考えられる。
「コンピュータアーキテクチャの話」が待望の書籍化!
■書籍「コンピュータ設計の基礎」
著者:Hisa Ando
単行本(ソフトカバー:288ページ
定価:2,415円 ○本連載「コンピュータアーキテクチャの話」をベースに「実際に設計できる」本当の"基礎"の提供を目指した「コンピュータ設計の基礎」として書籍化されました。コンピュータの基本設計「アーキテクチャ」。その設計を行うエンジニア「アーキテクト」に送る教科書として、実際にコンピュータを設計する場合に役立つ知識を提供する一冊となっています。(編集部)