本連載はHisa Ando氏による連載「コンピュータアーキテクチャ」の初掲載(2005年9月20日掲載)から第72回(2007年3月31日掲載)までの原稿を再掲載したものとなります。第73回以降、最新のものにつきましては、コチラにて、ご確認ください。
消費電力の式を見ると、電源電圧Vddとクロックfの他にαとCLという項がある。消費電力を下げるという観点からは、これらの項を使わない手はない。前回述べたようにαは、クロックサイクルの内、どれだけの比率で回路が実際にスイッチするかという比率である。電力を消費するのは回路がスイッチするからであり、スイッチする回数を減らせば、当然、電力消費を減らせることになる。
プロセサが計算処理を行うには回路のスイッチが必要であるが、例えば、Wordで文章を編集しているような処理では浮動小数点演算は不要であり、浮動小数点演算器は動作する必要はない。しかし、浮動小数点演算器にクロックが供給されているとスイッチが行われてしまい無駄な電力を消費してしまう。つまり、動作に必要ではない回路へのクロック供給を止めてしまえば、消費電力を減らすことが可能である。これがクロックゲーティングという手法であり、電力低減が必須の最近のプロセサでは広く用いられている。
しかし、今、処理している命令では浮動小数点演算は必要ないとしても、次は浮動小数点演算命令が出てくるかも知れない。クロックの供給を止めているユニットに供給を再開する必要性が何時判るかが問題で、これが間に合わない場合にはクロックゲーティングは出来ない。あるいは、クロック供給の再開が間に合うまで待つことになり性能が低下する。
動作に必要なユニットにはクロックを供給する必要があり、また、前記のようにクロックゲーティングの適用が難しいケースもあり、クロック供給を停止できるのはプロセサ全体から見ると一部分であり、性能重視のハイエンドプロセサではクロックゲーティングによる電力低減効果は20%~30%程度であると報告されている。
次にCLの低減であるが、これには種々の手法がある。マクロ的に最も有効なのはチップ面積を小さくすることである。半導体テクノロジや設計スタイルを一定とすると単位面積あたりのCLはほぼ一定であるから、チップ面積を小さくすれば、それに比例してCLが減少し、それに比例して消費電力も減少する。チップ面積の減少はコストの点でも有利であり、大量生産するIntelなどは多大な設計費用を掛けてもチップ面積を小さくする努力をするゆえんである。
CLの減少方法の第二は、チップ設計上の改善である。インバータなどの論理回路を構成するトランジスタを小さくするとそれ自体の寄生容量が減少するだけでなく、それを駆動する前段の論理回路の負荷が減少するので、前段の論理回路のトランジスタも小さくできるという波及効果があり、スイッチ速度が許容できる限り小さなトランジスタを使うことによりCLを減少させることが出来る。また、配置やCADの改善により配線の長さを短くすることもCLの低減に効果がある。
CLの減少方法の第三は、半導体プロセスによるものである。前回述べたように、配線容量はCLの主要な要素であるが、これは隣接配線との静電容量であり、配線間の絶縁物の誘電率に依存する。つまり、誘電率の低い絶縁材料を使用すればCLを低減することが出来る。誘電率の低減にはフッ素含有率の多い絶縁物を用いたり、空孔を多く含む絶縁物(もっと微小な空孔であるが、発泡ポリスチロールのイメージ)を用いたりするなどの方法があるが、フッ素を増やすと密着性が悪化し、絶縁膜がはがれ易くなるという問題があり、空孔を多くすると機械的強度が保てないという問題が発生する。また、真空の誘電率を下回ることは原理的に不可能であり、現状の比誘電率(真空に対する倍率)は2.5~3程度であるが、将来的にも2.0を切るのは難しいと見られている。
CLのもう一つの主要な要素である入力容量は、入力となるゲート電極と電流を流すチャネルの間の容量と、ゲートとドレインやソースの間の容量からなる。前者のゲート電極と電流を流すチャネルの間の容量はMOSトランジスタが動作するのには必須の容量であり、流し得る電流を確保するためには低減できないが、ゲートとドレインやソースの間の容量はいわゆる寄生容量であり、半導体プロセスの工夫でゲートとドレインやソース電極の重なりを減らすことにより低減できる。