本連載はHisa Ando氏による連載「コンピュータアーキテクチャ」の初掲載(2005年9月20日掲載)から第72回(2007年3月31日掲載)までの原稿を再掲載したものとなります。第73回以降、最新のものにつきましては、コチラにて、ご確認ください。

これまでの消費電力の議論ではリーク電流を無視してきたが、最近のハイエンドプロセサでは全体の30~40%がリーク電流による電力消費となってきている。マルチコアによる低電力化とはすこし離れるが、なぜ電流が漏れるのか、そしてどのような影響があるのか、について述べてみたい。

N型MOSトランジスタではゲート電圧を0VにするとOFFになり、電流が流れないと書いたが、現実のトランジスタでは完全に電流がゼロにはならず、次の式で表わされるOFFリーク電流が流れてしまう。

  • IL= Io*exp(-Vt*Qe/nkT)

ここでIoは比例係数、Vtはトランジスタのスレッショルド電圧、Qeは電子の電荷、kはボルツマン定数、Tは絶対温度である。nは理想的なトランジスタ構造では1.0であるが、最近の短チャネルトランジスタでは1.4程度の値を取る。従って、室温ではスレッショルド電圧が80mV程度低下するとリーク電流は10倍に増加する。つまり、半導体の微細化に比例して電源電圧とスレッショルド電圧Vtを下げていくとOFFリーク電流が急増するという仕掛けになっている。

もう一つ、90nm世代から目立ってきたのがゲート酸化膜をトンネル効果で突き抜けて電流が流れるというメカニズムによるゲートリークである。量子力学によれば、人間がコンクリートの壁を壊さずにトンネル効果で突き抜ける確率もゼロではないが、限りなく小さい確率なので無視できる。通常は、絶縁破壊せずに電子がトンネル効果で絶縁物を突き抜ける確率も無視できる程度であるので絶縁が成立しているが、絶縁膜の厚みが2nmを下回るあたりからトンネル効果によるリークが顕著になり、絶縁膜厚の減少に対して指数関数で増加するので、1nm程度の厚みになるとゲート酸化膜1平方cmあたり100万アンペアというような膨大な電流となる。

これらのリーク電流はトランジスタに電圧が掛かっていれば動作に関係なく流れる電流であり、前に述べた動作に関連し、クロック周波数に比例する動作電力とは性質が異なる。プロセサが高速で動作している状態では全体の30~40%程度の電力であり、これでも無視できないが、クロックを止めると動作電力はゼロになるのに対して、リーク電力は喰い続けるので、特に携帯用の機器ではリークが大敵である。電池寿命が重要な携帯電話用のプロセサでは、リークを減らすために、Vtが高くゲート酸化膜も厚いトランジスタを使う。このようなトランジスタは流せる電流が小さく動作速度も遅くなるが、携帯電話ではクロックの向上よりもリークを減らして待ち受け時間を延ばす方が重要課題である。また、携帯電話ほどではないが、ノートPC用プロセサも同様にリーク削減は重要である。

デスクトップPC用プロセサでも、マルチコアになるとリーク電流の問題は大きくなる。現状のデュアルコアプロセサでは電源は2個のコアに共通であり、片方のコアがスリープ状態であっても他方のコアがビジーであれば、それに対応した電源電圧を維持する必要があり、スリープしているコアのリーク電流が流れ続けてしまう。デュアルコア程度ならVRM(Voltage Regulator Module:安定化電源)を2個持つことも出来るが、4コア、8コアと増えていくと頭の痛い問題である。CPUチップに電圧可変の安定化電源を多数内蔵するのは難しいので、筆者は、マルチコア化が進むに連れて、コアの1次キャッシュを追い出し、レジスタの状態をメモリに転送してからコアの電源を切る(コアごとにチップ内に電源スイッチを持つことは実現可能な範囲)というような方向に進むのではないかと考えている。