消費電流について考える -その2 貫通電流

その1を書いたのはなんと4月14日、1ヶ月もあいてるような気がしないでもないですが気にしないようにしましょう(気にしろよ)。
第2回は貫通電流です。これはCMOS回路においてはなにかとつきまとってくる無駄な電流であったりします。
貫通電流はCMOSの基本構成である、not,nand,nor等ですら発生する電流です。論理回路では0→1、1→0といった遷移が起こるわけですが、論理回路と言えど、瞬時に信号電位が遷移するわけではなくて、ある程度の傾きをもっているわけです。
論理回路の入力信号が中間電位(電源電圧の半分程度)になると、論理回路の構成部品(スイッチ)であるNMOS(論理'1'でOn)ならびにPMOS(論理'0'でOn)の両方ともがOnの状態となります。具体的に言うと、電源電圧が1.8V、PMOS、NMOSのVth(しきい値電圧)が0.7Vの場合、入力信号が0.7V〜1.1Vのとき、両方のスイッチがOnしてしまうというような事になります。このような状態の間(ほんの一瞬ですが)、電源とグラウンドの間に大電流が流れます。これが貫通電流です。
この貫通電流、CPUのような高周波数で動作するような回路の場合には非常に問題となります。周波数が高くなるほど、信号の遷移の機会が増えるため、貫通電流が増加してしまうのです。
貫通電流は回路的なケアでほとんどなくすことは可能です、が、パフォーマンス、コストに影響が出るため、利用するかどうかは、回路設計者にとっては非常に悩ましいところであります。Intelがその辺のケアをしているかどうかは僕は全く知りません、が何らかのケアはしているような気はしています。ケアしていない状態で、3GHzをも超える周波数でデバイスを駆動させるのは厳しいような気がするので…。