クロックゲーティングとパワーゲーティングの違い:減らす電力・復帰時間・状態の保持・回路を比較

どちらも、使っていない回路の電力を減らす低消費電力設計の手法ですが、止めるものが違います。クロックゲーティングは、レジスタへのクロックを止めて信号の切り替わりをなくし、動的な電力を減らします。電源は入ったままなので、状態は保たれ、1〜数サイクルですぐに再開できます。パワーゲーティングは、ブロックの電源をスイッチで切り、動的な電力に加えてリーク電流による静的な電力もほぼなくせます。その代わり、状態が消えるので保存の仕組みが必要で、復帰にも時間がかかります。

項目クロックゲーティングパワーゲーティング
減らす電力動的な電力(クロックの配線、フリップフロップ、その先の論理の切り替え)静的な電力(リーク)と動的な電力の両方
止めるものレジスタへのクロックブロックへの電源
電源入ったまま。リーク電流は流れ続ける電源スイッチで、ブロックの電源の線を切り離す
状態の保持保たれる消える。必要な状態はリテンションFF(リテンションレジスタ)やメモリに保存する
復帰の時間1〜数サイクル長い。突入電流を抑えながら電源を入れ、状態を戻すので、多くはµsの単位
必要な回路ICG(ラッチとANDによるクロックゲートのセル)と、イネーブルを作る論理電源スイッチ(ヘッダやフッタ)、アイソレーションセル、リテンションFF、電源の順序を制御する回路
細かさ細かい。数個のレジスタの単位から使える粗い。CPUのコアやIPなどのブロック(電源ドメイン)の単位
設計・検証論理合成のツールが、イネーブルの条件から自動で入れられる。STAでクロックゲーティングのチェックを行う電源の意図をUPFなどで記述し、電源を切ったときの動作や順序まで検証する
オーバーヘッド小さい。ICGの面積と遅延電源スイッチの面積と電圧降下、保存と復帰のエネルギー。短い休止では得にならない
主な使い方ほとんどのデジタル回路で、動いていない機能のレジスタを止める長く使わないブロックを止める。CPUの深いアイドル状態、スマートフォンのSoCの使っていないブロック

数値は代表的な目安で、世代や製品によって異なります。

どんなときに使うか

クロックゲーティング
数サイクルから長い時間まで、回路が動いていない期間があればいつでも。すぐに戻れて状態も保たれるので、ほとんどのデジタル回路で使います。
パワーゲーティング
ブロックを長い時間使わないとき、リーク電力の割合が大きいとき(微細なプロセスや高温)。保存と復帰のエネルギーを取り戻せるだけ長く休める場合に使います。
組み合わせ
まずクロックを止め、休止が長くなりそうなら状態を保存して電源も切る、という段階的な使い方が一般的です。DVFSとも組み合わせて使います。

よくある質問

クロックを止めるのに、ANDゲートだけではいけないのはなぜですか?

クロックが1の間にイネーブルの信号が変わると、クロックに短いパルス(グリッチ)ができ、フリップフロップが誤って動くからです。ICGは、クロックが0の間だけイネーブルを通すラッチでイネーブルを保持してからANDを取るので、グリッチが出ません。

パワーゲーティングで、復帰に時間がかかるのはなぜですか?

電源を切ったブロックの大きな容量を充電し直す必要があるからです。一度にスイッチを入れると大きな突入電流が流れて、ほかの動いている回路の電源の電圧が下がるので、スイッチを少しずつ順に入れます。その後、リセットや状態の復元も必要です。

アイソレーションセルは、なぜ必要ですか?

電源を切ったブロックの出力は、0とも1とも決まらない電圧になります。それを動いているブロックがそのまま受けると、誤動作したり、入力のゲートに貫通電流が流れたりします。アイソレーションセルは、境目で信号を決まった値(0や1)に固定します。

短い休止のときも、電源を切った方がよいですか?

そうとは限りません。電源を切ると、状態の保存や復元、容量の充電にエネルギーを使うので、それを減ったリーク電力で取り戻せる時間(損益分岐の時間)より長く休めないと、かえって損になります。短い休止には、クロックゲーティングを使います。

理解度チェック

使っていない回路ブロックへのクロックの供給を止めて、無駄な消費電力を減らす低消費電力設計の手法はどれか。

  1. Aオーバークロック
  2. Bクロックゲーティング
  3. Cスキャン設計
答えと解説を見る

正解:B. クロックゲーティング

クロックゲーティングは、動作が不要なブロックへのクロックを止め、フリップフロップやクロック配線の無駄なスイッチングをなくして動的消費電力を減らす手法です。論理合成のツールが、値が変わらない条件のレジスタを見つけて自動で挿入することもできます。ただしリーク電流は減らないため、電源そのものを切るパワーゲーティングと組み合わせます。オーバークロックは周波数を上げること、スキャン設計はテストの手法です。

パワーゲーティングの説明として正しいものはどれか。

  1. A回路のブロックへのクロックの供給だけを止める
  2. B使っていない回路のブロックへの電源の供給をスイッチで切り、リーク電力もほぼなくす
  3. C電源の電圧を2倍にして、処理を速くする
答えと解説を見る

正解:B. 使っていない回路のブロックへの電源の供給をスイッチで切り、リーク電力もほぼなくす

クロックゲーティングでは切り替えが止まるので動的な電力は減りますが、電源がつながっている限りリーク電流は流れ続けます。パワーゲーティングでは、ブロックと電源の間に置いた大きなトランジスタのスイッチをオフにして、電源そのものを切るので、リーク電力もほぼなくなります。スマートフォンのSoCでは、使っていないCPUのコアやGPU、各種のアクセラレータの電源をこまめに切っています。

パワーゲーティングで電源を切ったブロックについて注意すべきことと、その対策の組み合わせとして正しいものはどれか。

  1. A電源を切っても内容は必ず残るので、何もしなくてよい
  2. Bフリップフロップの内容が消えるので、必要な状態はリテンションレジスタや外部のメモリに保存してから切る
  3. C電源を切ると、ほかのブロックの電圧が2倍になる
答えと解説を見る

正解:B. フリップフロップの内容が消えるので、必要な状態はリテンションレジスタや外部のメモリに保存してから切る

電源を切ったブロックのフリップフロップやSRAMは内容を失うので、復帰したときに続きから動くには、切る前に状態を保存しておく必要があります。小さな常時給電の記憶を併せ持つリテンションレジスタを使う方法や、ソフトウェアで状態をメモリに書き出す方法があります。保存と復元、電源の立ち上げには時間とエネルギーがかかるので、短い休みでは切らない方がよい場合もあります。

  1. クロックゲーティングとパワーゲーティングを比べた説明として正しいものはどれか。
  2. パワーゲーティングで電源を切ったブロックと、動いているブロックの境目に置くアイソレーションセルの役割として正しいものはどれか。
  3. クロックとイネーブル信号の2入力ANDゲートでクロックを止める回路で、STAのクロックゲーティングチェックが確認する内容として正しいものはどれか。

電力管理(ソフトウェア制御)の練習問題へ

関連する用語の解説

クロックゲーティング
使っていない回路ブロックへのクロックの供給を止めて、無駄なスイッチングによる消費電力を減らす低消費電力設計の手法。
パワーゲーティング
使っていない回路のブロックへの電源の供給をスイッチで切り、リーク電力もほぼなくす低消費電力の手法。状態の保存と復帰の時間に注意が必要。
リテンションレジスタ
パワーゲーティングで電源を切っている間も、小さな常時給電の記憶で状態を保てるフリップフロップ。復帰したときに続きから動ける。
アイソレーションセル
電源を切ったブロックの出力が不定になっても、動いている側に決まった値を渡すために境目に置くセル。
電源ドメイン
チップの中で、同じ電源電圧と同じ電源のオン・オフの制御を共有する回路の範囲。ブロックごとに電圧や電源を管理できる。

関連する比較