ARMの待機電力削減技術

携帯機器向けプロセサでは最大のシェアを持つARMも、当然、消費電力低減の研究を続けてきている。その一端をCool Chips 16で、ARMのJames Myers氏が発表した。

Cool Chips 16で招待講演を行うARMのMyers氏

Myers氏は「Tokachi(十勝)」と名付けた一連の低電力テストチップを開発し、各種の技術の省電力効果を実測してきている。

成熟したTSMCの65nm LPプロセスを使い4世代6種のチップで省電力技術を開発。これらの技術は28nmプロセスにもスケールする (出典:Cool Chips 16におけるMyers氏の講演スライド)

今回の講演で述べられたTokachi-4Aの内部構成は次の図のようになっており、右側のCortex-M0は制御用のホストであり、左側のCortex-A5MP部分に実験用の回路が組み込まれている。

Tokachi-4AはCortex-A5 MP部分が低電力回路の実験用である (出典:Cool Chips 16におけるMyers氏の講演スライド)

Cortex-A5 MPプロセサはARMのアプリケーションプロセサとしては最小のもので、コアあたりのフリップフロップが12000個、全回路セル数は88000個で、これを2コア搭載して65nmプロセスで0.72mm2というサイズである。

そして、コアあたり2つの電源電圧の領域を持つことができ、"run"、"standby"、"dormant"、"shutdown"の4つのパワーモードをサポートしている。Standby(SB)モードではクロックを止めるが電源は供給したままで、比較的大きなリーク電流が流れる。Dormant(L1D)モードではコアの電源はパワーゲートするが、キャッシュには電源を供給した状態、Shutdown(SD)モードでは、チップ全体の電源をオフする。

SBモードではクロックのオフ、オンで、直ちに動作の停止、再開ができる。一方、L1Dモードでは、停止時にコア内部のレジスタの状態をキャッシュに退避し、再開時にはキャッシュから読み出してレジスタの状態の復元が必要となる。SDモードでは、停止時にレジスタとキャッシュの状態をメモリに書き戻し、再開時にメモリから読み込む必要があり、時間が掛る。また、退避、復元に必要な電力も大きくなる。

Cotex-A5 MPはARMのアプリケーションプロセサとしては最小のもので、コアあたり88000回路セルと小さい。コアあたり2種の電源を使うことができ、4つの電力モードをサポートしている (出典:Cool Chips 16におけるMyers氏の講演スライド)

パワーゲートはアイドル時の消費電力を減らす有効な手段であるが、ハードウェアはいつコアがアイドルになるかわからず、パワーダウンの実行はOSが判断することになる。

パワーゲートでの電源のオン、オフ時に余分の電力を必要とするので、短時間しかパワーダウンできないと消費電力が増えてしまう。このため、OSは、十分な時間パワーダウンができるという自信がないとパワーゲートせず、節電の機会を逃しているという。

このため、L1Dモードでコアの電源をオフしても、コア内部のレジスタの状態が消えないようにしてオーバヘッドを低減し、OSがパワーゲートを使いやすくしようという技術を開発しており、このチップで実験している。

次の図のように、マスタ-スレーブ構成のフリップフロップ(FF)のスレーブ側の電源はパワーゲートしてもオフにならない電源を使用し、コアの電源をオフにしてもレジスタの状態を保持する。

スレーブ側のラッチとクロック系はパワーダウンしない電源につなぎ、パワーゲートしても状態を保持するFF。セル面積や遅延時間がある程度大きくなるが、左上の3の回路では5%程度の面積増加で、遅延時間の増加はなく、負担が少ない (出典:Cool Chips 16におけるMyers氏の講演資料)

次の図に示すように、SBモードではリーク電流で38μW程度を消費しているが、上記の状態保持FFを使ってコアの電源をパワーゲートすると、リーク電力を50%低減することができる。これは保持FFを使わないでコアをパワーゲートするL1Dモードより5%リーク電力が多いだけである。

4本の棒グラフは、左から、クロックだけを止めるSBモード、状態保持FFを使ってコアの電源をオフにするSBモード、コアをパワーオフするL1Dモード、完全オフのSDモードのリーク電力 (出典:Cool Chips 16におけるMyers氏の講演資料)

この結果は65nmプロセスで作ったテストチップの実測値であるが、28nmプロセスでシミュレーションすると、保持FFを使いパワーゲートすることにより、SBモードのリーク電力を80%削減できるという結果が得られたという。

詳細は割愛するが、Tokachi-4Aチップでは動作していない状態ではキャッシュの電源電圧を10~20%下げるLV技術も組み込まれており、この技術を含めた各種モードでのリーク電流は次の図のようになる。

Tokachi-4Aチップの各種電力モードでのリーク電力の比較。CGはクロックゲート、PGはパワーゲート、LVは低電源電圧でのキャッシュ保持 (出典:Cool Chips 16におけるMyers氏の講演資料)

SBモードでクロックだけを止めた場合のリーク電力は38μWであるが、保持FFを使いコアをパワーゲートし、キャッシュの電源をLVにすると、リーク電力は約10μWに低減する。この図で見るとL1D状態での追加のリーク電流の低減はわずかであり、レジスタの退避、復元が必要になることを考えると、あまり有利ではないようである。

これらの技術は65nmプロセスで作ったテストチップで実証を行ったものであるが、28nmや20nmプロセスにも適用可能であると述べられた。