クロックゲーティング【clock gating】
概要

同期式のデジタル回路は、一定の周期で発振する「クロック信号」に合わせて動作する。信号が到達するたびに内部のトランジスタは充放電を繰り返し電力を消費するため、演算を行っていない待機状態の回路であっても、クロックが供給され続ける限り無駄な電力が消費され続ける。
クロックゲーティングでは、回路ブロックごとの動作状態を監視し、動作が不要なタイミングで論理ゲートを閉じてクロックの伝達を遮断する。単純な論理ゲートで遮断すると異常なパルスが発生する恐れがあるため、専用の「クロックゲーティングセル」を用いて安全に有効・無効を切り替える方法が用いられる。設計ツールにはこうした専用回路の挿入箇所を、タイミング解析や消費電力解析と組み合わせて自動的に提示する機能を備えるものもある。
クロックゲーティングを適用する単位は様々で、使われていない演算器やキャッシュメモリなどを対象に細かく制御する場合もあれば、マルチコアプロセッサの特定のコアやサブシステムといった大きな単位で制御する場合もある。また、ソフトウェアが利用状況に応じて制御することもあれば、ハードウェアが内部状態を監視して自動的にクロックを停止・再開することもある。クロックを再び供給すれば回路は直ちに動作を再開できるため、電源そのものを切る方式より復帰時間を短く抑えられる。
クロックゲーティングは電源を遮断する技術ではないため、待機中でもリーク電流による静的な消費電力は残る。さらに大きな省電力効果が必要な場合には、電源供給を止める「パワーゲーティング」(power gating)と組み合わせて利用されることが多い。クロックゲーティングは動的な消費電力の削減、パワーゲーティングは静的な消費電力の削減をそれぞれ主な目的としており、互いに補完する技術として使い分けられる。
半導体の微細化に伴い性能が向上する一方、発熱や消費電力の抑制は重要な課題となっている。特にスマートフォンやノートパソコンのようにバッテリーで動作する機器では、駆動時間を延ばすために低消費電力化が求められる。データセンターなどで運用される大規模システムに用いられるチップでも、AIやデータ解析など計算資源を大量に消費する用途の拡大によって電力消費の低減が喫緊の課題となっており、クロックゲーティングが標準で組み込まれるようになっている。