低消費電力のシステムを設計するには、消費電力の少ないマイコンを選択する必要がある。そのためには、各メーカーが提示する製品スペックを吟味しなければならない。しかし、その製品スペックは、メーカーごとに異なる指標で規定されていて、単純に比較できないケースが多い。そこで本稿では、マイコンの消費電力を正しく比較するために必要となる基本的な事柄を整理する。
消費電力の削減は、われわれの生活のすべての側面に大きな効果をもたらす。簡単に言えば、節電は環境と財布の両方に優しい。ただし、十分な効果が得られるだけ消費電力を削減するには、ICのレベルから取り組みを行う必要がある。特に、多くの電気製品のエンジンとして機能するマイクロコントローラ(マイコン)については、消費電力の削減を実現可能なものを適切に選択しなければならない。
マイコンの消費電力は、基本的にはアクティブ状態での電力(以下、アクティブ電力)とスタンバイ(スリープ)状態での電力(以下、スタンバイ電力)の和として定義することができる。ただし、忘れてはならないもう1つの重要な要素がある。それは、マイコンがスタンバイ状態からアクティブ状態に遷移する際に消費される電力である。マイコンは、すべてのデジタル/アナログ回路の準備が完全に整って動作可能な状態になるまで、正しく処理を行うことはできない。消費電力の総量を求める際には、この状態遷移時に消費される電力を加えることが重要である。つまり、消費電力の総量は、アクティブ電力、スタンバイ電力、状態遷移時の電力の和となる。
例えば、水道メーターのような用途では、ほとんどの時間、マイコンはスタンバイ状態になるのでスタンバイ電力が少ないことが求められる。一方、データロガーのような用途では、スタンバイ状態からアクティブ状態への切り替えが頻繁に発生するので、状態遷移時に生じる電力が問題になる(図1)。
しかし、汎用的なマイコンを開発する立場の者としては、特定の顧客に対する訴求力を高めることだけに注力するというわけにもいかない。そのため、すべての消費電力を最小にすることを目標として設計することになる。この目標を達成するには、アナログ領域とデジタル領域の両方、アーキテクチャレベルと回路レベルの両方の問題に対処できるだけの専門知識が必要である。
以下では、マイコンの3つの状態のそれぞれにおける消費電力について詳しく見ていくことにする。
まずはアクティブ電力である。これについては、その多くの部分をCMOS論理ゲートのダイナミック消費電力(動作に伴って生じる消費電力)が占めることになる。CMOS論理ゲートのダイナミック消費電力PDは、基本的には以下の式で求めることができる。
PD=C×V2×f
この式において、Cは論理ゲートの負荷となる容量値、Vは電源電圧、fはスイッチング周波数である。この式からわかるように、マイコンの消費電力に最も大きな影響を与えるのは電源電圧である。従って、マイコンの電源として安定した低い電圧を供給するように設計することで、アクティブ電力を大きく削減することができる。そして、このことはスイッチング方式のDC-DCコンバータを使用すれば実現可能だ。ただし、この方法は、マイコン用の電源を生成するために大きな電圧変換比を必要とするケースにより適したものだと言える。例えば、電池で駆動する機器の場合、電池が寿命の終わりに近づくと電圧変換比が1対1に近づくことになる。このようなケースには、低ドロップアウトリニアレギュレータ(以下、LDOレギュレータ)を使用するほうが適している。このタイプのレギュレータは、スイッチング方式のものほど複雑ではなく、コストも比較的抑えられる。しかし、それでも十分な効果を得ることができる。
電池で駆動する機器においてLDOレギュレータを使用した場合の効果を示すために、先ほど示したダイナミック消費電力を求める式を以下のように変形してみる。
PD=C×V2×f=V×(C×V×f)=V×I
この式は、C×V×fの部分はダイナミック消費電流Iに置き換えることができるということを表している。一般的に、ダイナミック消費電流は1MHzの周波数と、ある特定の電源電圧を基準として規定されることが多い。例えば、ある低消費電力マイコンのダイナミック消費電流は、電源電圧が1.8Vの条件で160μA/MHzと規定されている。そして、このマイコンの電源電圧を単純に3.2Vとした場合、ダイナミック消費電流は160×(3.2/1.8)=284μA/MHzまで増加することになる。
それに対し、LDOレギュレータを使ってマイコンに給電することができるならば、電池からの電圧の全範囲に対し、ダイナミック消費電流を1.8V動作時の値に抑えることができる(図2)。このような電源構成を用いて電圧に対する依存性を排除することで、アクティブ電力を大きく削減することが可能になる。
逆に言えば、このような電源構成をとらないとするなら、マイコンベンダーが一般的に示す最小動作条件における仕様値だけを評価することには意味がない。例えば、電源電圧が1.8Vといった条件だけではなく、動作電圧の全範囲におけるマイコンの消費電流を算出することが重要である。実使用条件よりも低い電源電圧の条件しか想定していない楽観的な電流仕様値をうのみにすると、想定外の問題が起きることになる。例えば、単3/単4型電池を2個使うシステムでは、ほとんどの期間、電池からは初期値である3Vに近い電圧が出力される。従って、ほとんどのマイコンでは、電源電圧が1.8Vの条件での仕様より、約50%も多くの電力を消費することになってしまう。
また、ダイナミック消費電流は動作周波数(CMOS論理ゲートがスイッチングする周波数)に正比例する。従って、システム設計者は周波数に関しても正規化した値を求める必要がある。例えば消費電流の仕様として60MHzでの値が示されているなら、その値を60で割って1MHz当たりの値に換算するといった具合だ。
なお、マイコンにおいて消費電流の観点から本当に重要なのは命令クロック周波数である。しかし、システムクロック周波数を使用して定義した非常に紛らわしい仕様値が提示されているケースもある。システムクロック周波数は、命令クロック周波数の少なくとも2倍以上であることがほとんどだ。従って、システムクロック周波数を使用して消費電力を規定すると、少なくとも実際の2倍の値となってしまう。周波数に関しては、命令クロック周波数を用いて消費電力を見積もることが重要なのだ。
以上のように、電源電圧と周波数の2つを組み合わせることで、マイコンのアクティブ電力を同じ基準で比較することができる。例えば、電源電圧が3Vで1MHzで動作させた場合の消費電流を比較するといった具合である。このような点に気をつけることにより、実際のアクティブ電力を正しく算出することが可能になる。
Copyright © ITmedia, Inc. All Rights Reserved.