雑誌無償購読申込み 最新号 バックナンバー 広告資料請求 EDN Japanについて お問合せ
雑誌無償購読申し込み
メールニュースレター登録
登録内容変更
アナログ IC/ディスクリート
電源/電池/コントローラー
PLD / メモリー
組み込みシステム
コンピュータ&ボード
EDA/IP/CAE/ソフトウェア
電子部品
計測器
ディスプレイ
デジタル家電
通信・ネットワーク
カーエレクトロニクス/産業機器
EDN Japan 記事検索
検索方法の詳細
雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
2006.5
高性能かつ低消費電力のLSIを実現する技術
――デュアルスレッショルド電圧とパワーゲーティング

デュアルスレッショルド電圧とパワーゲーティングの設計フローを用いれば、リーク電流とパフォーマンスの両方を、少ない労力で調整できる。
Kaijian Shi 米Synopsys Professional Services社

Advertisement
 スレッショルド(閾(しきい)値)電圧VTHが異なる2種類のゲートを使用する設計最適化フローは、大部分が自動化されており、かつ電力とタイミングの両方で優れた結果を得られる手法である。VTHを落としてもパフォーマンスが上がらないばかりか、(リーク電流による)静的電力が増えてしまうVDSM(very deep submicron)チップでは、このデュアルVTHを用いる手法が不可欠になってきた。
 実際、微細化技術の進化に伴ってリーク電流は著しく増加しており、65nmプロセスではチップ電力の50%にも達している。このリーク電流の急激な増加は、その機器がバッテリ駆動かどうかに関係なく、ほとんどの設計で受け入れられないものだ。そのため、パフォーマンスとリーク電流のバランスをとる設計最適化フローが注目されている。
 設計要件に基づいてパフォーマンスとリーク電流を最適化する一般的なフローは3つある。これらのフローは、パワーオンモードの設計で、最小限のリーク電流、最大限のパフォーマンス、最適なチップ面積とツール処理時間を実現することを目的としている。スタンバイモードではどうしてもリーク電流が増えるため、これらのフローにはスタンバイリーク電流を最小限に抑えるための方法も取り入れられている。

リーク電流の削減フロー

図1 リーク電流を削減するこのmin-cut手法では、タイミング条件を満たすために、クリティカルパス内のロジックゲートが合成ツールによって低VTHゲートに置き換えられている。
 デュアルVTH方式では2つのセルライブラリを使用する。1つは、伝搬遅延が少なくリーク電流の大きい低VTHセル用、もう1つは遅延が大きくリークが少ない高VTHセル用である。タイミングクリティカルなパスで低VTHセルを使い、その他のパスで高VTHセルを使って設計を最適化することにより、速度を最大限に上げ、リーク電流を最小限に抑えることができる。
 この最適化の効果は、真にタイミングクリティカルなパスを特定して、2つのライブラリのタイミングがパスに及ぼす影響を正確に計算できるかどうかにかかっている。必要なタイミング精度を得るには、パス遅延計算にセル配置情報とネット配線情報に基づく相互接続遅延を含める必要がある。そのため、物理合成における二次パスの混在VTH設計の最適化では、次の3つのフローが推奨されている。

●mini-cutフロー
3つのフローのうちリーク電流を最小限に抑えられるが、より多くのセルと動的電力を必要とする一方でパフォーマンスが低い
●max-cutフロー
最少のセル数と動的電力で最高のパフォーマンスを達成できるが、3つのフローのうちでリーク電流が最も大きい
●max-cut II フロー
リーク電流とチップ面積のバランスを取ることで上記2つのアプローチの折り合いをつけたもので、ツール処理時間やメモリー容量も考慮している

図2 このフローチャートの右側と左側は、それぞれmin-cutフローとmax-cutフローの例を示している。唯一の違いは、一方は最低リーク(高VTHセル)で始まり、他方は最低遅延(低VTHセル)で始まることだ。
1つ目のフローは、最初に組み合わせ回路内のすべてのセルに高スレッショルド電圧が割り当てられる反復min-cutアルゴリズムを使用する。高VTHトランジスタのパフォーマンスの低下により、通常は遅延条件の違反が発生する。しかし、初期設計でのリーク電流は最も少ない。次にこのアルゴリズムは、スレッショルド電圧がLowに切り替わることでパフォーマンスが向上し、遅延条件を満たすことができるエッジの最小サブセットを特定する。最小重みカットに基づくmin-cutグラフアルゴリズムによってこれらのエッジが特定される。このカットでは、低VTHに切り替わることで電力増加を最小限に抑えられる。図1は、min-cutアルゴリズムを使用したデュアルVTHの割り当ての例を示している。
 リーク中心の設計最適化フローとして考案されたmin-cutアプローチでは、リーク電流を最小限に抑える回路を設計できる。図2の右半分がこのフローを示している。高VTHライブラリを使用した最初の最適化の後、通常はタイミング違反が起こる。その後、低VTHセルと高VTHセルの両方を使用した最適化により、タイミングクリティカルなすべてのパスが特定され、それらのパスにあるセルが低VTHセルに置き換えられる。さらに、低VTHセルへの置き換え後も違反となるパスを修正するために、合成ツールによってローカル設計の最適化が実行される。
図3 max-cut2手法は図2のmax-cutフローと同じだが、クリティカルサブ回路のみを変更する。ツール処理時間も短縮される。
 反復min-cutアルゴリズムとは異なり、反復max-cutアルゴリズムは最初に組み合わせ回路内のすべてのセルに低VTHを割り当てる。低VTHセルは速いため、この実装ならば定義されている遅延条件を余裕で満たせるが、リーク電流が増える。次にこのアルゴリズムは、スレッショルド電圧が高い方に切り替わることで遅延条件に違反することなくリーク電流を削減できるエッジの最大サブセットを特定する。max-cutグラフアルゴリズムは、高VTHへの切り替えによって最大のリーク電流を削減できることを示す最大重みカットに基づいてこれらのエッジを特定する。図1の左半分が示すこのアルゴリズムは、基本的には前述のフローと同じように機能するが、低VTHライブラリと高VTHライブラリを逆の順序で使用する。
 3番目のアプローチは、ツール処理時間とメモリー容量の問題を軽減するもう1つのmax-cutアルゴリズムである(max-cut IIと呼ぶ)。このmax-cut IIアルゴリズムは、まず設計のすべてのセルを高VTHセルにして、タイミング条件に違反するクリティカルサブ回路を特定する。そして、タイミング条件を満たすために、クリティカルサブ回路内のすべてのセルが低VTHに切り替えられる。次に、通常のmax-cutアルゴリズムが、再び高VTHに戻しても遅延違反を起こすことのないエッジを特定する。したがって、max-cut IIは基本的にクリティカルサブ回路のみにmax-cutアルゴリズムを適用するため、最適化される回路のサイズを大幅に縮小できる。したがって、max-cut IIアルゴリズムのフロー実装では、通常のmax-cutアプローチよりもチップ面積を減らし、ランタイムを最適化することが可能である(図3)。max-cut IIフローでは、リーク電流を最小にするために高VTHライブラリを使用して設計を最適化する。しかし、クロック周波数を下げれば、高VTHセルだけではタイミング条件を満たせないタイミングクリティカルパスに対処しなくても、余裕のあるタイミング条件で最適化を行うことができる。この最初の最適化を行った後、クロック周波数を本来のターゲット値に調整して実際のタイミング条件に戻し、低VTHライブラリと高VTHライブラリの両方を使用して設計を少しずつ最適化すればよい。

パワーゲーティング

 前述の最適化方法のどれを使用しても、スタンバイモードではリーク電流が増えることになる。スタンバイモードでリーク電流を減らす1つの方法は、ロジック部分への電力供給を遮断することである。一部のロジックへの電力供給を遮断しても他のロジックはアクティブのままで保持できるように、設計を2つ以上の電力領域に分割する必要がある。そうすれば、パワーダウンする領域への電力供給だけを遮断できる。この「パワーゲーティング」によってリーク電流を大幅に減らすことができるが、その手法は複雑で、設計フローにおいて次のような特別な作業を行う必要がある。

●アイドル回路への電力供給を遮断する、スリープトランジスタの追加
●パワーゲーティング制御信号の分配
●電力領域検知クロックツリーの合成
●パワーダウン時間における部分回路の状態保持
●電力領域インターフェース信号の絶縁
●複数電力領域の物理設計最適化

 スリープトランジスタは、ゲート、クラスタ、電力領域に基づいてパワーゲーティング設計に実装できる。ゲートベースの実装では、スリープトランジスタをロジックゲートに挿入して、ゲートへの電力供給を制御する。この手法には、各ゲートのスイッチ電流と電源ノイズマージンに基づいて、ゲートに適したサイズのスリープトランジスタを使用できるという利点がある。さらに、仮想パワーネットが短くてゲート内に隠れるため、標準セルベースの合成ツールと物理設計ツールを使用してゲートを実装できる。一方で、各ゲートにスリープトランジスタが必要となるために、クラスタや電力領域ベースの実装よりも必要な面積が増える。また、物理設計では各ゲートへのグローバルスリープ制御信号の分配は難しい。
 クラスタベースのスリープトランジスタ実装では、複数のゲートをクラスタにまとめる。最少のクラスタで、同時スイッチ電流が最小になるようにする。クラスタ内のゲートは同じ電力領域に属し、レイアウト内で互いに密接しているものでなくてはならない。各クラスタはスリープトランジスタを介して仮想パワーネットに接続する。一般に、クラスタベースの実装ではゲートベースの実装よりも必要な面積が小さくて済むが、スリープトランジスタのサイジングを厳密に行えるようクラスタごとに現実的な電流値を得ることは難しい。さらに、個々に電力が供給されるこれらのクラスタのIRドロップは異なるため、パフォーマンスにも差が生じる。
 電力領域ベースのスリープトランジスタ実装では、電力領域内のゲートを、複数のスリープトランジスタを介して実パワーネットワークにつながる仮想パワーネットワークに接続する。仮想パワーネットワークは、通常のパワープランニング、解析、最適化方法を用いて、実パワーネットワークと同じように最適化できる。このスリープトランジスタ実装では、電力領域内のすべてのゲートに、トランジスタが放電電流を共有してバランスを取る分散スリープトランジスタネットワークを介して電力が供給されるため、一般にゲートベースやクラスタベースの実装よりも必要とされる面積が小さい。しかし仮想グランドネットによって設計のノイズマージンが減少し、動作不良を起こす恐れがあるため、電力品質を保つためにもパワーゲーティングの設計に必要な電力を慎重に分析しなくてはならない。
 いずれの手法を用いるにしろ、パワーゲーティング制御信号をトランジスタに分配するときは、特定の電力領域をパワーダウンすることで他の電力領域への制御信号の伝搬が遮断されることのないように注意する必要がある。特殊なバッファツリー生成法によって、常時オンになっているパワーネットとグランドネットの下にバッファがくるように生成と配置を制約することもできる。同じように、遮断すればダウンストリームロジックへのクロックの伝搬を止めてしまう電力領域を介してクロック分岐が渡されないように、クロックツリーの合成で制約を与えるとよい。

状態の保持と復元

 ウェークアップ後に動作を再開する設計には、アイドルになる前に電力領域のロジック状態を保存して、ウェークアップ時にその状態を復元する方法が必要である。この状態保持・復元方法は次の3つから選ぶことができる。
 1つ目は、指定されたレジスタ値とメモリー値を、電源を遮断する前にディスクストレージに書き込むようなソフトウエアを使用する方法である。ウェークアップ時には、保存されていた状態がソフトウエアによって設計に再び書き込まれる。この方法には特殊なハードウエア設計は必要ないが、一般に保持・復元プロセスには時間がかかりすぎて、実際のアプリケーションでは有効ではない。さらに、ディスクの読み出しと書き込みでは、おそらく短時間のスタンバイモードで節約したリーク電流を帳消しにしてしまうほどの多くの電力が消費される。
 2つ目は、設計のスキャンチェーンを使用して、パワーダウン前にレジスタ状態を常時オンメモリーにシフトアウトし、ウェークアップ時にその状態をシフトインする方法である。1つ目の方法に比べると格段に速いが、この方法でも多くの最先端アプリケーションには遅すぎるし、メモリーアクセスにも多くの電力が消費される。
 3つ目は、状態を効率的に格納・復元できる保持レジスタとラッチを実装する方法である。数ある保持回路の中でも、低電力設計ではバルーン型回路が一般的だ。こうした回路を実装するには、通常のレジスタまたはパワーダウン時にレジスタ状態を保存するラッチにシャドウラッチを追加する。シャドウラッチは低リーク電流用の高VTHトランジスタで構成され、通常のレジスタに接続するか、または風船の結び目のような単一ポイントを介してラッチに接続する。
 バルーン型保持回路では「B1」と「B2」と呼ばれるの2つの保持制御信号を使用する。信号パス内で電力領域をパワーダウンするときに保持回路で信号が有効となるように、これらのグローバル信号はパワーゲーティング制御信号と同様の方法で分配する必要がある。

電力領域の絶縁

 電力領域をパワーダウンすると、その出力信号はフローティング状態になる。これらのフローティング信号は、アクティブのままになっている他の部分に影響を及ぼしかねない。ハンドシェイク信号であれば誤動作が発生する可能性もある。いずれの場合も、フローティング信号はそれを受け取るロジックゲート内に短絡電流を発生させることがあり、電力損失ばかりかデバイスの損傷につながる恐れがある。
 こうした問題を回避するには、パワーダウン領域とパワーオン領域間のインターフェースに絶縁ロジックを追加する必要がある。この絶縁ロジックをパワーダウン領域に実装すれば出力信号を制御でき、パワーオン領域に実装すれば入力信号を制御できる。
 一般に出力は他の電力領域の複数の入力を駆動するため、出力信号を絶縁した方が入力信号を絶縁する場合よりも絶縁セルの数が少なくて済む。さらに、常時オンの電力領域の出力に絶縁セルは必要ない。出力絶縁制御信号の分配もより簡単である。
 しかし出力信号絶縁セルは、入力絶縁セルに必要な短いローカルネットよりも大きな信号ネットを駆動しなくてはならないため、スタンバイモードでより多くの電力を消費する。また、入力信号絶縁ロジックは標準的なセルで実装できるが、出力信号絶縁ロジックにはカスタムセルが必要となる。
 どちらの方法を選択すべきかは、設計のパワーマネジメント構造にもよる。1つか2つの電力領域をゲーティングする設計には、一般には入力信号絶縁方式の方が適している。パワーマネジメント構造が複雑な設計には、出力信号絶縁方式が適していることが多い。
 パワーゲーティング信号によって必要なプルアップ状態またはプルダウン状態を実現する上で、考えられるゲートとトランジスタの組み合わせはいくつもある。配置と物理合成を行うときに、入力絶縁セルが電力領域内にあり、かつ電力領域境界に近接していることを確認する必要がある。また、物理合成の結果をチェックして、ツールによって絶縁セルと電力領域の入力との間にバッファが挿入されていないことを確認しなくてはならない。このようなバッファが挿入されていれば絶縁セルを使用する意味がない。

電力領域への配慮が必要

 スリープトランジスタ、状態保持セル、インターフェース信号絶縁セルを使用する設計の最適化は非常に骨の折れる作業だ。良い結果が得られるよう、次のガイドラインを役立てて欲しい。

●電力領域内のセルが確実に領域内に配置されるよう、配置と物理合成を行うときに厳密な排他領域条件を適用する。この配置には、電力領域に関連した論理階層の設計情報も必要となる。
●特定の電力領域内でロジックの再構築またはローカルバッファリングが行われたときに作成された新しいセルをその電力領域に割り当て、セルがその電力領域内に確実に配置されるような制約条件を適用する。
●状態保持セルなど、常時オン電源を必要とする特別なセルは、常時オンパワーネットまたはグランドネットの下に配置する。このタスクを自動的に処理するツールもある。
●電力領域間の信号が絶縁されるよう、電力領域の信号絶縁セルをその領域の境界に配置する。
●電力領域のパワーダウンによって残りの部分の信号またはスキャンチェーンが阻止されないようにグローバル信号を分配し、スキャンチェーンのスティッチングを管理する。

これらのどの制約条件を適用してもツールの処理時間が増加するため、パワーダウン領域を実装する方法は、リーク電流を最小限に抑える必要のあるアプリケーションのみに使用すべきである。大半の設計では、自動化されたデュアルVTH方式を使用すれば少ない労力で良い結果が得られるだろう。

雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
Reed Electronics Group
Electronic BUSINESS Japan | Design News Japan | Semiconductor INTERNATIONAL | DETAIL JAPAN
EDN Japanについて | 広告掲載について | サイトマップ | お問合せ
 Copyright (C) 2000-2007 Reed Business Information Japan K.K. 
個人情報に関する方針 | 著作権・リンクについて | 会社情報