JP3836715B2 - リーク低減制御を論理回路に挿入するシステム及び方法 - Google Patents
リーク低減制御を論理回路に挿入するシステム及び方法 Download PDFInfo
- Publication number
- JP3836715B2 JP3836715B2 JP2001369057A JP2001369057A JP3836715B2 JP 3836715 B2 JP3836715 B2 JP 3836715B2 JP 2001369057 A JP2001369057 A JP 2001369057A JP 2001369057 A JP2001369057 A JP 2001369057A JP 3836715 B2 JP3836715 B2 JP 3836715B2
- Authority
- JP
- Japan
- Prior art keywords
- net
- probability
- state
- odc
- logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明は一般に半導体素子に関し、特に、確率決定に従う低減制御回路を提供することにより、半導体素子におけるリーク電流を低減するシステム及び方法に関する。
【0002】
【従来の技術】
リーク電流を低減するための2つの主なアプローチが提案されている。それらは、しきい値電圧制御と論理状態制御である。
【0003】
集積回路におけるリーク電流は、FETのしきい値電圧に反比例し、しきい値電圧を上げるとリーク電流が低減する。しかしながら、しきい値電圧を上げると素子の性能が低下する。従って、消極的なしきい値電圧制御方法では一般に、タイミング的に厳格でない論理パスの部分を選択し、回路のその部分により高いしきい値素子を使用する。積極的なしきい値制御方法も存在し、そこではしきい値電圧が能動体により動的に調整されるか、或いは、チップが回路の完全な性能が要求されず、最小のリークが所望される"スタンバイ"または"スリープ"・モードのときに、十分にバイアスする。
【0004】
リークの論理状態は、回路のリークがその入力の状態の大きく依存するという概念にもとづく。例えば、CMOS2ウェイ(two-way)NANDゲートは、両方の入力がロー電圧のときに、両方の入力がハイ電圧のときよりも一桁低いリーク電流を有する。これらの方法のリーク制御は、論理ネットワークを想定したとき、論理ネットワークの入力に加えられ、可能な最も低いリーク状態を生成する論理値のセットを見い出す。この低リーク状態を生じる論理値のセットは、"低リーク・ベクトル"と呼ばれる。低リーク・ベクトルは、チップが"スタンバイ"または"スリープ"動作モードに入力するとき、論理ネットワークに低リーク・ベクトルを強制する変更記憶素子により、論理ネットワークに適用される。
【0005】
このアプローチの主な課題の1つは、大規模な論理回路上で低リーク・ベクトルを見い出すことである。可能な論理状態の数は、回路への入力の数に直接比例するので、全ての可能な状態を網羅的にチェックすることは不可能ではないにしても非現実的である。従って状態空間を開拓し、"低リーク・ベクトル"を見い出すヒューリスティック・アルゴリズムが開発された。これらのアルゴリズムは、回路への入力を制御できるだけで、可能な"最低リーク・ベクトル"を見い出せないであろう事実により制限される。
【0006】
論理状態制御アプローチの別の制限は、"スリープ"状態と"アクティブ"状態との区別が常に明確とは限らないことである。設計の異なる部分が異なる時間の間、非アクティブ(すなわち一種の"スリープ"・モード)であるかもしれない。アクティブ・スイッチング・パワーに対するリーク・パワーの相対重要度が増しつつある新規技術では、比較的短い期間でさえも論理ネットワークのこれらの非アクティブ部分のリークを低減することが重要となる。
【0007】
従来システムではリーク低減技術の焦点は、記憶素子を低リーク・ベクトルに強制することにより、"スタンバイ"に入る際に設計に適用される低リーク・ベクトルを静的に決定することに置かれてきた。
【0008】
論理ネットワーク状態に関する確率的情報を利用することにより、デジタル回路設計を最適化する技術が存在する。特に参考文献の1つとして、S. Sirichotiyakul、T. Edwardsらによる"Stand-by Power Minimization through Simultaneous Threshould Voltage Selection and Circuit Sizing"、ACM 1999、Ch. 26. 2、pp. 436-441が挙げられる。この参考文献は、リークを低減または最小化するために、確率的分析を用いてトランジスタをサイズ決めし、電圧しきい値を変更することを教示する。しかしながら、この従来技術は、回路のスリープ状態及び信号の論理状態の設定を考慮していない。
【0009】
従って、論理状態統計にもとづき確率的アプローチを用いて、集積回路素子の任意の時点での期待リークを見い出すことにより、低リーク・ベクトルを見い出す改善された方法及び機構を提供することが望まれる。
【0010】
更に、半導体回路がアイドル状態のとき、回路が大域的または局所的に最適化状態になるように、論理を操作して確率を変化させる改善された方法及び機構を提供することが望まれる。
【0011】
更に、回路が"アクティブ"の間にも、リーク電流を低減する論理最適化を可能にする、従って"スリープ"と"アクティブ"・モード動作の間の不明瞭な線を収容する確率的アプローチを用いて、低リーク・ベクトルを見い出す改善された方法及び機構を提供することが望まれる。
【0012】
【発明が解決しようとする課題】
従って本発明の目的は、確率的分析にもとづき、論理ゲートの状態を強制し、リークを低減する論理システム設計方法を提供することである。
【0013】
本発明の別の目的は、多くのアクティブ/半アクティブ/スタンバイ状態の任意の間に低リーク設計となるように、論理ネットワークを変更する合成の間に、リーク確率を見い出す方法及び機構を提供することである。
【0014】
更に本発明の別の目的は、素子の収容域を形成したり、特殊なスイッチを追加することなく、多くのアクティブ/半アクティブ/スタンバイ状態の任意の間に、リークを低減し、低オーバヘッドとする確率的分析を実現する論理システム設計方法を提供することである。
【0015】
更に本発明の別の目的は、低リーク設計となるように、論理ネットワークを変更する合成の間に、ゲートの固有の性質を利用して論理状態を強制する方法及び機構を提供することである。
【0016】
【課題を解決するための手段】
本発明は論理状態統計にもとづき、任意の時点での期待リークを見い出す確率的アプローチを用いることにより、正確な低リーク・ベクトルを見い出す困難を克服するものである。これは回路が"アクティブ"の間にもリーク電流を低減する論理最適化を可能にし、それにより"スリープ"と"アクティブ"・モード動作との間の不明瞭な線を収容する。幾つかの手法により確率的情報が計算され記憶される。これらの手法は、スイッチング・パワーの分析のために、スイッチング情報を決定する手法と似通っている。シミュレーション・トレースの結果として情報が個々のネット上で収集される。或いは、信号間の相関を追跡するために、様々な入力状態(基本入力及びラッチ出力論理値のセット)の確率が追跡される。こうした入力状態情報が、2分決定グラフ(BDD:binary decision diagram)または他の周知の手段を用いて簡潔に記憶される。各信号について、その信号が特定値(他の全ての信号値に無関係か、状態情報を通じて相関付けられる)である確率と、論理ネットワーク内の各ブロックについて、入力値の各可能な組み合わせに対するそのブロックのリークに関する情報が与えられると、全てのブロックに渡り合計することにより推定リーク・パワーが計算される。すなわち、ブロック入力値の全ての組み合わせに渡って、その入力値の組み合わせの下でのリークに、その入力値の組み合わせの発生確率を掛けた積の総和が計算される。これらの信号確率に影響を及ぼす論理ネットワークの変更が行われた場合、確率が更新され、リーク・パワーの結果の変化が推定される。信号確率の更新は論理ネットワークの一部または全部を再シミュレートすることにより、或いはネットをドライブするゲートの入力における更新確率にもとづき、論理変更のファンアウト・コーン内のネット上の確率を再計算することにより、またはこれらの組み合わせや他の手段により達成される。
【0017】
信号確率と共に、また同様に各状態について、論理ネットワークがその状態のときに、任意の所与の信号ネットがスイッチする確率が計算される。再度、これは論理ネットワーク内の様々なネットを独立に扱うことにより行われる。この場合、対象となるスイッチング確率は単に、ネットがローのときにハイになる条件付き確率であり、またネットがハイのときにローになる条件付き確率である。これらのスイッチング確率はまたグローバル状態にもとづき、BDDまたは他の手段を用いて計算される。この情報は、ネットが特定の状態にあるであろう期間、従って、その状態に関連付けられるリーク・パワーを浪費する期間を決定する支援し、ネット上のリークを低減する相対重要度を決定するために使用される。
【0018】
著しく異なる動作モードが知れているとき、確率と結果のリーク・パワー推定値の別々のセットが、各モードについて保持される。次に、各モードで費やされる期待期間と各モードにおけるパワー低減の重要度とにもとづき、これらの異なるモード・パワーの重み付け合計を低減するために、最適化が実施される(例えば、バッテリ・パワーまたは壁面コンセントで動作する素子は、後者の場合よりも前者の場合に、よりパワーを低減する必要がある)。一部のモードでは、特定の論理ネットワーク入力値(基本入力またはラッチ出力)が知れており、従って、0及び1の状態確率を有する。基本入力の値が制御されない場合でも、特定のモードは特定の基本入力が定義済み状態であるモードとして定義され得る。
【0019】
この確率的リーク情報が与えられると、リーク・パワーを低減する様々な最適化が実行される。一般にこれらの方法は論理において、"don't care"、すなわち、ゲートまたはサブネットワーク出力値がどうであろうと問題とならない場合の、そうしたゲートまたはサブネットワークへの入力条件を利用する。これらのdon't care条件は、高級言語入力による指定を通じて(例えばcase文におけるdefault case)、或いは論理ネットワークの分析を通じて、またはこれらの組み合わせにより決定される。同様に、特定のネットまたはネット・セットがdon't caseである論理条件が、同様に特定の指定信号(例えば特定の機能またはチップ全体のための"スリープ・モード"信号)により、或いは論理ネットワークの分析(すなわちdon't careを意味する論理機能の決定)により、またはこれらの組み合わせにより決定される。変更を加える時期を決定するために選択される機能が、常に信号がdon't careであることを意味する限り、don't care関数全体が最適化において使用される必要はない(すなわち、リークを低減する全てのdon't care条件に対して変更を加える必要はない)。換言すると、信号がdon't careであると判断するのに十分ではあるが、必要条件である必要のない関数が探索される。更に、don't care関数と特定のネットに関連付けられるリークとの間に相互作用が存在し得る。例えば、信号確率を増加させるとリークが減少するモードAと、信号確率を減少させるとリークが減少するモードBの両方において、信号はdon't careであるかもしれない。明らかにこれらの2つのモードにおいて、信号確率を異なる方向にドライブする変更を加えることが目標となる。
【0020】
本発明によれば、複数のネットを含む論理ネットワークのリーク・パワーを低減する方法が提供される。この方法は、前記論理ネットワーク内の1つ以上のネットの可観測性don't care(ODC:observability don't care)情報を決定するステップを含み、ODC情報は、ネットにおける入力値が論理ネットワークの出力値に影響しない入力のセットを表し、ODCは論理ネットワークの個々のネットのスリープ状態を識別するために使用される。方法は更に、スリープ状態の少なくとも一部の間に、ネットを特定の値に強制するシミュレーションを実行し、期待パワー消費が低減される少なくとも1つのネットを決定する確率的分析を実行するステップと、期待パワー消費が低減されるとき、決定されたネットをそのスリープ状態の一部の間に決定された値に強制するステップとを含む。
【0021】
好適には、これらのdon't care状態を最適化し、リーク・パワーを低減するために使用される従来の論理合成技術が、面積を低減し、回路性能を改善し、ときにスイッチング・パワーを低減するために使用される。従って、幾つかの異なる目的のための同時最適化が試行される。これらは変化が様々な目的関数に及ぼす影響の重み付け合計を取り(例えばK1*delta-面積+K2*delta-スイッチング・パワー+K3*delta-リーク電流)、この重み付け合計において最善の改善を提供する最適化を選択することにより組み合わされる。こうしたコスト・ベースの変化もまた制限を受け、例えばネット・スラック(net slack)があるしきい値以下にならない限り、前記の重み付け目的関数の合計において最善の改善を与える変化を加えるようにする。
【0022】
【発明の実施の形態】
本発明の原理によれば、合成される回路の様々なネット(ネットワーク)の静的確率及びスイッチング確率を確認するために、第1のフェーズ分析が実行される。この分析は好適には、論理回路設計を最適化するために要求される、リークの増分的確率分析を含む。アルゴリズムでは、当業者には周知のブール関数を表す2分決定グラフ(BDD)が使用される。ブール関数及びそれらの特性の詳細については、Randal E. Bryantによる参考文献"Symbolic Boolean Manipulation with Ordered Binary-Decision Diagrams"、ACM Computing Surveys、Vol. 24、No. 3、September 1992及びR. RutenbarによるSchool of Computer Science、Carnegie Mellon University、Fall' 97 class notesで述べられている。尚、左記の開示は、<http://www.ece.cmu.edu/〜ee760/>で見い出すことができる。BDDは基本的に、幾つかの変数に依存する関数を表す2分木である。変数が特定の論理状態値(例えば"0")に制限されるとき、関数は変化し、オリジナル変数のサブセットに依存する。このプロセスは、当業者にはシャノン・コファクタリング(Shannon cofactoring)として知られ、関数が1変数の関数に帰着するように繰り返される。従って入力変数の任意の割当てに対して、ツリー関数を通じてパスを走査することにより関数の値が決定される。一般にBDDと称するとき、これは削減された順序付け図であり、ルートからリーフ(leaf)に至る任意のパスに沿う変数に常に定義済みの順序で遭遇し(全ての変数が全てのパス上に存在する必要がない)、同じ変数及び同じ子を有する2つのノードが併合され、その2つの子が同一である任意のノードが削除される。BDDの他の多くの操作及び動作が業界で知られている。コンピュータ支援設計業務において削減された順序付けBDDを表現し、効率的に操作するデータ構造が、Karl S. Braceらによる参考文献"Efficient Implementation of a BDD Package"で述べられており、業界において周知である。この機能を提供するコンピュータ・パッケージは、例えばSynopsys、Inc. of Mountain View、CAから販売されている。
【0023】
この第1のフェーズ分析に従い、説明の目的上、デジタル回路ネットワーク内の"ネット"はBDDにより表され、BDD構造内の各ノードがBDDを通じて取られるパスを決定する決定変数として、基本入力、すなわちネットの値を有するものとする。一旦BDDが作成されると、BDDにより表されるネットが特定の状態にある確率が決定される。この様子が、例えばBryantによる前記参照文献"Symbolic Boolean Manipulation with Ordered Binary-Decision Diagrams"で述べられている。一般に、高度なシミュレーションを用いることにより基本入力での確率が最初に決定され、次に、内部的なネットの確率がBDDを用いて決定される。しかしながら本発明によれば、高度シミュレーションを用いても確率決定を可能にしないネットワークが変更される。従って、BDDを用いての信号確率の計算が、既知の確率を有するリーフから開始する。例えば、ノード0が1である確率は0(常に0)であり、ノード1が1である確率は1である。正に0及び1である子を有するBDD内のノードを考えると、常にその属性を有する少なくとも1つのノードが存在する。そのノードの決定変数が1となる1/4の確率を有し、当該変数が1のとき、そのノードにより表される関数が1で、当該変数が0のとき、関数が0の場合、その関数は1となる1/4の確率を有する。代わりに、当該変数が1のとき、そのノードにより表される関数が0で、当該変数が0のとき、関数が1の場合、換言すると、ノードが変数の逆元を表す場合、その関数は1となる3/4の確率を有する。このようにBDD内の各ノードに対して、この計算が実行される。すなわち、ノードにより表される関数の確率は、ノードの決定変数が1である確率と、そのノードの1の子が1となる確率とを掛け合わせた積と、ノードの決定変数が0である確率と、そのノードの0の子が1となる確率とを掛け合わせた積との和、すなわち単純合計となる。これは、例えばツリーのポスト・オーダ・デプス・ファースト(post-order depth-first:後順深さ優先)探索走査を用いて再帰的に実行される。このようにして、このツリー内の任意のノードに対して確率が見い出され、そのノードにより表される関数を有するネットが1である確率を提供する。
【0024】
この技術は静的確率、すなわち信号の値が1である確率、または信号が0である確率を決定するためのものである。本発明によれば、スイッチング確率の追加の考慮が成される。なぜなら、何かが毎サイクルごとにスイッチングしている場合(または3サイクル置きまたは10サイクル置きにスイッチングしている場合であっても)、それを特定の状態に強制することは望ましくない。なぜなら、信号を特定の状態に強制するオーバヘッドが大きくなり、すなわち、その遷移を行うために使われるパワーが、非常に短い期間に渡り保管されてきたリーク・パワーよりも大きくなるからである。従って好適にはこれらの技術は、信号が長い時間don't careである高い確率を有する場合に適用されるべきである。信号は高い確率である必要はないが、don't careのとき、長い時間don't careであることが有望でなければならない。
【0025】
スイッチされる確率について見ると、Peter H. Schneiderらによる"Fast Power Estimation of Large Circuits"、IEEE Design and Test of Computers、1996、pp. 70-78が参照される。この参考文献は基本的に、静的手法と同じ思想であるが、時間的な1スライスを表す基本入力の1セット(例えば現変数入力X1、X2、...、Xn)を有するネットに対してBDDを生成することに加え、そのネットのBBDが次の連続スライスに対して、例えば次状態変数入力XT 1、XT 2、..、XT nの関数として生成される。BDDのこれらのセットは同一である。なぜなら、ネット構造がサイクル毎に変化しないからである。従って、任意の特定の遷移において前の状態の変数が与えられると、次の状態において変数がどのようであるかを知ることができる。これらの2つのBDDは次に排他的論理和され、現状態変数と次状態変数の両方の関数である新たな関数を表す新たなBDDを生成する。この新たな関数(結合BDD)は、信号が1対の連続サイクルの間をいつスイッチするかを直接的に表す関数である。
【0026】
好適には、前記のSchneiderらによる参考文献"Fast Power Estimation of Large Circuits"で述べられるように、スイッチング確率を計算するために変数を現状態と次状態の間でインタリーブすることにより、作成されたBDDが特別に順序付けされる。例えば、入力変数X0 1及びXT 1は現状態の変数(0の上付文字で定義される)と、次状態の変数(Tの上付文字で定義される)をそれぞれ表す。従って、X0 1及びXT 1変数が隣接するとき、静的状態に対して実行された同一種類の確率分析が、今度は1度に1対の変数に対して実行される。従って、Schneiderらの論文で述べられるように、また図1のBDDツリー構造11により表されるように、与えられる確率はX0 1及びXT 1が両方1であるときを表し、これはこのツリーの最左端分岐12に対応し、すなわち変数が前サイクルにおいて1であり、次のサイクルでも1に留まる。同様に、このツリー11の最右端分岐13は、変数が前サイクルにおいて0であり、次のサイクルでも0に留まる場合を示す。中間のケースでは、パスが左を走査し、次に右の分岐16を走査するとき、スイッチングが発生することを示す。これは変数が前サイクルにおいて1であり、次のサイクルで0になることを表す。換言すると、変数はこの遷移の間に立ち下がる。他の残りのパス18は1であり、遷移の間に信号が立ち上がることを示す。
【0027】
一旦全ての統計が高度シミュレーションを通じて集められると、信号が0である確率に関する統計だけでなく、それがスイッチする確率に関する統計も収集される。決定変数が入力信号の現状態値及び次状態値に対応するBDDの2つのレベルを1度に見ることにより、幾分より複雑な分析が実行される。この分析は、決定変数に対応する入力信号が1であり、そのまま1に留まる確率をその分岐上の確率と乗算する演算と、決定変数に対応する入力信号が0であり、そのまま0に留まる確率を適切な分岐上の確率と乗算する演算と、他の2つの分岐確率を一緒に加算する演算と(なぜなら立ち上り確率は常に立ち下り確率に等しいため)、その値を決定変数に対応する入力がスイッチする確率と乗算する演算とを要求する。これらの確率をツリー上で伝搬することで、ルートでの確率、すなわち、この信号が任意の連続するサイクル対の間でスイッチされる確率が生成される。
【0028】
論理ネットワークにおいて複数変化を効率的に生成及び評価するために、これらの演算は増分的に実行されなければならない。例えば、米国特許第5508937号"INCREMENTAL TIMING ANALYSIS"では、データの増分伝搬をネットワークを通じて順方向に効率的に実行する分析方法が述べられている。これらのステップには、例えば、最初にネットワーク内の全てのネット上でのスイッチング確率を見い出す初期分析を実行するステップと、次に論理変更を行うステップ、例えばゲート入力において論理1状態を強制するステップとを含む。ネットワーク全体について解析を最初からやり直すのではなく、値を更新するために必要な限りにおいて変更が導入され、伝搬される。従って、本発明の好適な実施例によれば、状態確率及びスイッチング確率を決定する方法が、米国特許第5508937号に従う増分的更新機構と共に適用される。
【0029】
ネットワーク関数を表すBDDの作成及び実現、並びに信号の状態及び信号のスイッチング確率、及びネットワークに変更が加えられたときに、信号をどのように更新するかを決定する手段に加え、分析の次のフェーズは"don't care"条件、特に可観測性don't care(ODC:observability don't care)の計算及び評価を要求する。ここでODCは、出力が環境により監視されない、すなわちネットの値に関与しない状況における入力のセットを表す。論理ネットワーク内のネットに対してODCセットは、条件セット(すなわち論理ネットワークの入力ベクトル)であり、この条件の下では、ネット上の値は論理ネットワークのいずれの基本出力にも影響せず、また論理ネットワーク内のラッチに記憶される値にも影響しない。従って、これらのODC条件の下で、論理ネットワークの関数(観測可能な出力またはラッチ内容)に影響を及ぼすことなく、ネットが任意の選択値を取れるように、ネットワークは変更される。
【0030】
ODCの計算は多様に行われる。ブール・モデルにおいてODCを計算するアルゴリズムの詳細は、Giovanni De Micheliによる書籍"Synthesis and Optimization of Digital Circuits"、McGraw-Hill Publishing、Chapter 8、pp. 380-396で見い出される。本発明の状況では、ODCセットは電子素子のスリープ動作モードと同意語であるが、これは従来ラッチからクロック信号を削除することと見なされた従来のスリープ・モードとは異なる。従来のスリープ・モードでは、ラッチ上で強制される値が読出されていないために重要でない。本発明では、可観測性don't careを計算するアルゴリズムは、再収束(reconvergence)が存在しないことが知れているローカル・ファンアウトに、或いは、パスの全てのファンアウトをブロックすることが知れているグローバル信号に関わる。これは、例えば、出力からの開始を要求する"カットセット(cut sets)"を実現し、全てのファンアウトを見い出すなど、既知の方法により行われ、各パスに沿って、信号によりブロックされる場所が存在するか否かを判断する。
【0031】
より詳細には、ODCの計算を実行する1方法が図2に示される。図2に示されるように、この方法は、論理ブロック42及び52を有する論理ネットワーク10において、(ODCが計算される)対象ネット40からの全てのパスをインタセプトするカット35を定義するステップを含む。次に、このカット内の全てのネットが対象ネットに独立である条件が計算される。ネットNに関するカット・ネットCのブール・デリバティブは、dC/dNとして示される。C=f(N、...)ならば、dC/dN=f(N=0、...)とf(N=1、...)との排他的論理和である。dC/dNが0のとき、すなわちdC/dNの逆元が1のとき、ネットCはネットNに独立である。カット・セット内の全てのネットに対するこれらの条件の論理積(AND)を取ることにより、ネットNに対するODC条件のセットが与えられる。ネットNに対する総ODCセットを計算するために、カット35'が基本出力に取られるべきである(すなわち、図2の論理ブロック52は空であるべき)。
【0032】
ODCの計算において、必要とされる労力と完全性との間には、トレードオフが存在する。ODCセットの計算は、ネットとカットとの間の全ての論理の分析を要求する。ネットの完全なODCセットは、そのネットの完全なファンアウト・コーンの分析を要求する。それにひきかえ、カットがネットに近い場合、少量の論理だけが分析されればよい。従って完全性のためには、カットをできるだけ右に(すなわちネットワーク出力に向けて)押し出すことが好ましい。一方計算スピードのためには、カットをできるだけ左に(すなわちネットに向けて)押し出すことが好ましい。これはまたODCセットの増分的更新に拡張される。すなわち、ネットとカットとの間の論理(図2の論理ブロック42)に変更が加えられると、ODCセットが計算されなければならない。従って、論理ブロック42のサイズを最小化すると、ODCセットの再計算を要求する潜在的な変更の数が最小化される。
【0033】
多くの場合論理ネットワークの"スリープ"状態は、結果が論理ネットワークの出力の近くに伝搬するのをブロックする信号により決定される。例えば、しばしば論理ネットワーク出力をラッチするクロックをゲートすることが行われる。こうしたケースでは、関連ODCの決定がODCが計算されているネットから遠く離れたカットを用いて行われ、従って、ODCセットを計算的に高価にする。有用なODCセットを安価に獲得する1方法は、ネットNのファンアウト・コーンを通じる、あるカット内の全てのネットのODCである条件が、ネットNのODCでもあることを記すことによる。図3のネット40を考慮すると、カット35'内の全てのネットのODCである条件は、対象ネットのODCでもある。これらの条件は前述のように、ブール・デリバティブを用いて見い出され、次にカット内の全てのネットを横断して、条件を論理積(AND)する。同様に、ネットのローカルODCが、前述のように、カット35に対して計算される。これら2つのODCセットの論理和(OR)もまた、ネット40の有効なODCである。論理ブロック42及び62が論理ブロック52に比較して小さい場合、このことはODC計算において多大な時間を節約することができる。更に、カット35'は多くのネット間で共用され、従って、ローカルODCだけが各ネットに対して別途計算される必要がある。
【0034】
ODCの増分的更新は前述のように、カット対を用いてODCを決定し、次に論理変更が行われるとき、図3の"論理ブロック42"または"論理ブロック62"内において、変更された論理を含むネットを決定することにより計算される。一部の実施例では、完全なODCセットを見い出すことが必要でなく、それらのサブセットを見い出せばよい。すなわち、計算が容易で非常に多くのケースにおいて、don't careである関数を見い出す。従って、このネットを強制するアクションが取られるとき、その関数のサブセットをインプリメントすることが望ましい。換言すると、非常に複雑な関数はオーバヘッドの点で高価であり、ネットを強制する論理を構築することができない。しかしながら、単純な回路での信号は、95%の時間真であることが判明しており、論理ゲートに関して、5%のコストで実現できる。従って、たとえ全部のODCセットをカバーしなくても、より単純な関数が構築される。なぜなら、オーバヘッドが追加される量と、リークが低減される時間量とは、常にトレードオフの関係にあるからである。
【0035】
いずれにしても本発明の好適な実施例によれば、ODC状態の確率分析が実行される。各ネットに対してその関数を見い出す、すなわち基本入力の点から、任意の時刻におけるこのネットの値を見い出すことに加え、関数が変更されるかもしれない時期を示すODC関数が計算される。なぜならODCが1のときに、ネットを異なる値に強制する入力が導入される場合、ネットワーク振舞いは変更されないからである。これに反してODCが0のときに、ネットを異なる値に強制する入力が導入される場合には、それは出力で観測でき、ネットワークの関数内で不当な変化を構成し得る。
【0036】
更に続けると、各ネットに対してODCを表す関数を計算した後、ODCのスイッチング確率、すなわちどのくらい頻繁に関数がその状態にスイッチ・インし、またその状態からスイッチ・アウトするかが決定される。これは現状態及び次状態変数に関連して、これらのODCに対して生成されるBDDから計算される。1例では、BDDが排他的論理和(XOR)されて、ODCのスイッチング関数が獲得され、そのスイッチング確率が決定される。
【0037】
前述の追加のスイッチング情報は、ネットを低リーク状態に強制する(リーク・パワーを低減するが、スイッチング・パワーを増加する)ための追加の論理遷移を導入するか、それともネットの論理状態を維持するかを決定するために使用される。ネットが低リーク状態に強制される場合、消費されるパワーは低リーク状態での1サイクル当たりのリーク・パワーと、ネットが低リーク状態に留まる期待サイクル数との積と、その状態へ及びその状態から遷移するために要求されるスイッチング・パワーとの和である。低リーク状態に強制されない場合には、消費パワーは、1サイクル当たりの期待パワーと(期待リーク及びスイッチング・パワーの両方を考慮して確率的に決定される)、左記と同じサイクル数との積である。これらの値を比較することにより、ネットを低リーク状態に強制することにより、パワーが低減されるか否かが決定される。
【0038】
この第1のフェーズの終わりに当たり、各ネットに対して4つの様々な関数が獲得される。すなわち状態関数(状態)及びスイッチング確率関数(状態)と、状態関数(ODC)及びスイッチング関数(ODC)である。一旦全ての情報が獲得されると、試行錯誤法により、決定された全ての情報を利用して、リークの改善が図られる。前記の米国特許第5508937号で述べられる増分的分析は、これらの関数の各々を更新するために考慮される。
【0039】
特に、試行錯誤法に関して、次の分析が実行される。すなわち、1)ランダムにネットを選択し、2)そのODCを見い出し、3)異なるネットワークであり得るそのODCの様々な単純化を見い出す(作成のために、様々な量の論理が要求される)。見い出されるODCは、次の所望のトレードオフ基準にもとづき、独立に選択される。すなわち、1)ネットワークがODC状態になる確率が最大である、2)この状態にスイッチ・インし、この状態からスイッチ・アウトする確率が最小である、及び3)計算が簡単であることである。例えば、新たな潜在的なODC関数が見い出され、その確率が非常に低いか、そのスイッチング確率が非常に高い場合、それはスキップされてよい(例えば、あまりに高価と思われるので)。ODC関数が見い出されると、すなわち、ネットが特定の状態に強制される条件が決定されると、ネットが1または0に強制される。例えば、信号が信号NOT(ODC)とANDされ、または信号ODCとNORされて、0に強制される。或いは、信号ODCとORされ、または信号NOT(ODC)とNANDされて1に強制される。強制論理の犠牲は、強制信号(ODCサブセット)を生成し、信号をある値に強制するために追加される論理の累積消費パワー(スイッチング・パワーとリーク・パワーの両方)である。変更の犠牲/節約は、リークによるパワー変化、及び強制信号及びそのファンアウトの変更後確率によるスイッチング変化に、この犠牲を追加する
【0040】
図4乃至図6は、単純なANDゲートの論理状態を強制する状況を示す。図4のANDゲート70の出力ネットに注目すると、ネットにODC関数が存在し(ことによるとそのネットの完全なODC関数のサブセットである)、ODC関数が真のとき、この出力を1に強制することが望ましいことが判断される。1は直接ANDゲートに強制されないので、図5に示されるように、ORゲート72がANDゲートの出力に配置され、ODC関数がORゲートに供給されてANDを1に強制する。或いは、1対の入力を有するANDゲート70の出力を0に強制するために、図6に示されるように、ODCがインバータ73を介してANDゲートに供給される。ここでインバータ73はODCを反転し、ANDゲートを0に強制する。簡単な計算、高い確率、及び低スイッチング基準にもとづき、一旦ODCまたはそのサブセットが見い出されるとゲートが強制される。ここでネットの出力を強制すると、幾つかの伝搬効果が生じることになる。それにより、0に強制される出力は、幾つかの他のネットを様々な状態に強制し得、同様に出力が1に強制される場合についても同じことが言える。増分的分析によれば、ゲートを特定の状態(1または0)に強制するアクションが取られると、影響される全ての確率が再計算され、更にリーク・パワー、及びこのネットワークにより消費されるスイッチング・パワーが再計算され、信号を強制する前に消費されたパワーと比較される。消費パワーが悪化する場合、この変化は廃棄される。
【0041】
シミュレート化アニーリング:
ネット状態を強制するこの純粋にランダムな方法は、シミュレート化アニーリングなどの、他のネットワーク最適化手法と共に実施されてもよい。シミュレート化アニーリングは、ランダム種類の最適化を実行するために使用される汎用最適化フレームワークを提供する。これはネットの論理状態の強制に応じて、結晶の結晶化の熱力学をシミュレートし、パワー消費の観点からネットの良否を決定する。移動が事態を良化する場合それは受け入れられる。しかしながら、事態が悪化する場合には、温度と呼ばれる擬似変数の関数であるボルツマン分布に関連付けられる確率で受け入れられる。当業者には知れるように、アニーリング・シミュレーションは高温から開始し、たくさんの悪い移動及びたくさんの良い移動が受け入れられることが期待され、次に温度がゆっくり低下される。このプロセスが進行し、温度が下がると受け入れられる悪い移動が少なくなる。アニーリングに関する広範な資料が存在する。例えば、S. Kirkpatrick、C. D. Gelatt及びM. P. Vecchiによる"Optimization by Simulated Annealing"、Science、vol. 220、pp. 671-680、May 1983及び本発明に従い、シミュレート化アニーリングがこのランダム手法と併せて使用される。
【0042】
感度情報の逆方向伝搬:
リークを改善する第2の方法では、どのネットを使用するかの判断を下すための追加の"感度分析"が実行される。すなわち本発明によれば、最適化プロセスを導き、潜在的なネットワーク変化を評価するために、各ネットについて、その出力コーン内の論理のリークに影響する全効果を決定することが好ましい。これは概念的または文字通り、状態確率に関するリーク・パワーのデリバティブの形式を取る。これらの値は、論理ネットワークを通じる情報の逆方向伝搬を通じて計算される。例えば、ANDゲートが出力確率0.25、リーク・デリバティブD、及び各々が独立な確率0.5を有する2入力を有する場合、各入力ネットは出力ネットに影響する半分の確率しか有さないので、逆方向伝搬寄与度は0.5*Dである。これにネットそのものによるリークが追加されなければならず、これはネットが0のときと1のときとの間の、ネットのソース・ゲートのリークの差である。半導体チップ上のリークは、ネットそのもの内ではなく、ネットが接続されるゲート及び他の回路を通じて発生する。特定の状態でのネットのリークを指すとき、これはネットが接続される回路内のそれらの状態において発生するリークを意味する。同様にネットの入力とは、ネットをドライブするゲートへの入力を意味すると理解される。
【0043】
変更の選択は、可能な変更のセットから任意の可能な変更を選択し、各々の潜在的な利点を評価することにより行われる。最適化の目標において、改善をもたらすことが期待される特定の変更が選択される。例えば、前述のように、1)高いリーク・パワー・デリバティブを有し、2)それらの状態確率を著しく変化させる潜在性を有し、3)提案された変形を許可する十分に肯定的なスラック(余裕)を有するネットが選択される。
【0044】
この追加の分析は、ランダム・アプローチよりもより効果的な"感度"分析である。なぜならこれはネットの出力が、例えばその入力(ネット)の各々が1である確率に関連して、1である確率のデリバティブの決定を含み、デリバティブ計算がネットワークを通じて逆方向に伝搬するからである。例えば、特定の状態にある可能性の高い特定のネットにおいて、ANDゲートが与えられる場合、例えば出力は論理1である0.8の確率を有し、論理0である0.2の確率を有する。これはその入力ネットのそれぞれの確率に関連付けられる。全体的に独立なネットでは(再収束が存在しない)、出力が1である確率は、実際に(例えばANDゲートの)2つの入力が1である確率の積である。なぜなら、全ての入力が1の場合のみ、出力は1であるからである。従って、入力の確率の積が総確率を提供する。同様に、これは逆方向に伝搬され得る。ORゲートでは、どちらかの入力が1の場合のみ、すなわち、両方の入力とも0でないとき、ORゲートの出力は1である。従って、2つの入力について出力が1である確率は、次のようになる。すなわち、
【数1】
(1−(1−第1の入力が1である確率)×(1−第2の入力が1である確率))
【0045】
1例として、ネットNのリーク・デリバティブは、Nの状態確率の変化に関連付けられるリーク・パワーの変化として定義される。これはNをドライブするゲートのリークの変化だけでなく、ネットNの状態確率の変化の結果、その入力確率が変化するネットNのファンアウト内の全てのゲートのリークの変化も含む。このデリバティブを正確に計算することは、論理ネットワーク内の再収束の影響により困難である。しかしながら、この計算は、各ゲートについてその全ての入力に対する変更が独立に行えると仮定することにより、効率的に近似される(すなわち、それらの共同のファンイン・コーン内の共通のネット上の変更によらない)。この場合、ゲートの各入力において、ゲート出力の状態確率の変化が計算される。これは出力ネットのリーク・デリバティブの乗数倍であり、入力確率の変化によるゲート自体のリーク・パワーの変化に追加されて、ゲート入力ピンのリーク・デリバティブが求まる。最後に、ネットの全てのシンクのリーク・デリバティブが合計され、ネット自体のリーク・デリバティブが求まる。
【0046】
図7は、本発明による感度分析において使用されるリーク・デリバティブのアプリケーションを示す。図7において、ANDゲート80の出力確率は入力確率の積であり(上側のゲート80の状態確率デリバティブは0.2で、下側のANDゲート82のそれは0.9)、ネットNの状態確率に関して、2つのネットのそれぞれのリーク・デリバティブが計算される。すなわち、それぞれ0.2*4=0.8及び0.9*(−10)=−9.0である(図7に示されるリーク・デリバティブは、ネット自体の状態確率に関する)。入力確率p1及びp2を有するANDゲートの期待リークは、次のようになる。
【数2】
【0047】
p1に関するゲート自体のリーク・デリバティブは、0.7−0.5p2である。上側のゲートのリーク・デリバティブは、0.7−0.5*0.2=0.6であり、下側のゲートのそれは、0.7−0.5*0.9=0.25である。従って、ネットNの総リーク・デリバティブは、0.8+0.6−9.0+0.25=−7.35である。これはネットNのスイッチング確率を、例えば0.4から0.3に低減すると、約0.735単位のリーク・パワーが節約できることを示す。
【0048】
これは単に真のリーク・デリバティブの近似であるので、最適化を導くために使用される。結果は前述のBDDベースの方法を用いるよりも正確な、増分的パワー分析によりチェックされる。更に、ゲートへの2つの入力の確率の変化がパワーを低減させたり、逆に、任意のある入力自体の確率の変化がパワーを増加させる場合がある。パワー最小化のためのこうした機会は、リーク・デリバティブ法を用いて見い出されるが、こうした変化の下流での結果が見い出されてもよい。
【0049】
感度情報、すなわち、ゲートをドライブするその入力の各々が1である確率に関連して、信号が1である確率のデリバティブを見い出し、逆方向に伝搬することはパワー消費と相関付けられる。すなわち、駆動ゲートの各入力に対してその入力がゲート出力値を制御する確率(例えば、ANDゲートでは、他の全てのゲート入力が1である確率)を取得し、それをネット(ゲート出力)の状態確率に関するリーク・パワーのデリバティブと乗算し、次にこの結果を、入力が1のときの駆動ゲート自体のリーク・パワーと、入力が0のときの駆動ゲート自体のリーク・パワーとの差に加算することにより、より情報の豊富なリーク・デリバティブが得られる。期待リーク電流のデリバティブは、各ネット上の感度測定を得るために逆方向に伝搬される。これは確率分析にもとづく強制ネットの変化が与えられるとき、総リーク電流の期待変化の計算を可能にする点で貴重である。
【0050】
この情報は総リーク電流の期待変化の客観的測定が、例えば信号を強制するために必要な論理を追加する犠牲と比較される点で貴重である。従って、潜在的なネットワーク変更を選択する試行錯誤アプローチを取るのではなく、本発明の分析フェーズは感度分析を含み、感度に従い、ネットを通じて分類する追加のステップを要求する。こうしてローカル推定が状態確率及びスイッチング確率の期待変化から求められる。例えば、(反転)ODC関数と特定のネットの状態関数とのANDを取り、新たなスイッチング確率及び状態確率を局所的に見い出し、次に感度情報を用いて局所変化の伝搬効果を推定する。ODC関数とネットのオリジナル状態関数との間には、相関が有り得るので、単に状態確率に反転ODC関数の確率を乗じるのではなく、このANDされた関数の確率を計算することが好ましい。この期待変化に設計の各ネットのリーク・デリバティブを乗し、それらを分類し、最初に最善のネットを取り出することが純粋にランダムなアプローチの改善である。
【0051】
この時点で、分析はODCを用いて論理が強制され、スイッチング確率に関連してリークが低減される、ネットワーク内の位置の決定を含む。ODCを決定する分析は、更に次の基準にもとづくトレードオフにもとづく。すなわち、1)ODC状態にある確率を最大化する、2)この状態にまたは状態からスイッチ・イン及びスイッチ・アウトする(高価である)確率を最小化する、及び3)計算の単純化であり、好適には、論理を強制する良い場所を見い出すために分析において感度が使用される。或いは、幾つかのネットをランダムに試し、最善のネットを拾い出すより単純な貪欲な方法が実行される。これはまた、ここで述べられるシミュレート化アニーリング手法に従い実行されてもよい。
【0052】
この分析にもとづくこれらの方法の1つ、例えば試行錯誤法が、これらの摂動の1つを試行し、結果を測定する。すなわちこの方法の適用の結果が、ネット位置において固定状態を強制する場合、次のステップは例えば、1)到来した信号をゲートする、例えばその位置に追加のORゲートを配置する(外部論理に配置する)こと、または2)そのことにより対象ゲートを置換し、従って追加の入力を有することとの間のトレードオフを評価する。ゲート化論理の配置を要求する第1のケースでは、論理の挿入が信号の遅延に影響し、信号の到来時刻に応じて他の伝搬信号の遅延にも影響し得る。論理の挿入が信号の遅延に影響する場合、この影響及び、遅延、パワー消費、ノイズなどの点で、その総性能的犠牲を緩和する他の変化がトリガされてもよい。或いは、余分な入力を有するネットにおいて、第1のゲートの置換を要求する第2のケースでは、例えば、ゲートの特性を示す関連ライブラリ素子が保持される。例えば、2入力NANDゲートでは、余分な入力を有する関連3入力NANDゲート・ライブラリ素子が保持される。この結果、ゲートの置換は同じ利点を提供し得るが、遅延またはパワー消費などは減少し、より良い代替実施例となる。従って設計においてパワーを低減する目的に加え、例えばチップ全体内で最も遅いパスが、そのチップ全体の実行速度を制限するという意味で、性能の制約が評価されなければならない。外部タイミング要求を満足しなければならない、すなわち、少なくともその速度が維持されなければならないチップ性能が指定されてもよい。換言すると、チップ遅延がこれらの要求を満足しない場合、チップは技術的に機能しない。同様に、ノイズ分析などの他の領域においても、満足されなければならない制約が存在したり、特定の状況の下でチップが機能しないかもしれない。従って、こうした機能制約に従い、パワー最小化が実施されなければならない。
【0053】
アルゴリズム:
図8は、本発明の原理に従う論理システム設計方法を概念的に示すブロック図である。本発明の好適な実施例に従う方法200は、操作されるネット・リストを入力する第1のステップを含む。次にステップ204で示されるように、追加のステップが、状態スイッチング、ODC関数、及び確率の計算を要求し、ステップ206で、全体としてのネットワークの初期パワー計算を行う。次にステップ210で関数を保持しながら、ネットに論理変更を強制する。これは例えば、ネットを強制する1つ以上の場所を選択するステップと、バッファリングするステップと、クローン化するステップとを要求する。より詳細には、加えられる変更のタイプは、多くの従来の論理合成変更を含む。これらには、例えば、1)論理信号の極性の変更、2)ゲートのファクタリング、3)ゲートのクローン化(ゲートのコピーを生成し、そのファンアウトをオリジナルとコピーとの間で分配する)、4)バッファの追加、5)"再配線(rewiring)"変形の実行(ゲートへの論理信号の冗長な接続の追加及び削除)、6)"同期化(retiming)"変形の実行(論理アクセス・ラッチ境界の移動)が含まれる。物理情報(例えばブロック配置)の存在の下で、論理合成機能が実行される場合、変更は更に、7)新たな位置へのゲートの移動、及び8)ネットの経路指定の変更を含み得る。これらに加え、特にリーク・パワーの低減を目的とした新たなタイプの変更が実施され、それらには、9)ネット値がdon't careのとき、ネットをその低リーク状態に強制するゲートの追加、及び10)所与の状態においてマスタ/スレーブ・ラッチの出力がdon't careの場合、スレーブ・ラッチを最低リーク・パワー状態に強制することなどが含まれる。余分な状態がネットワークの順次振舞いに追加され、ラッチ値が次に必要とされる前に、(マスタ・ラッチに記憶される)適正な論理値を1サイクルまたは半サイクル内にスレーブ内に強制する。また、11)ゲート出力がdon't careのとき、余分なトランジスタを高リーク・パスに直列に配置する余分な入力がゲートに追加される。例えばハイであるNORゲートは、リークが発生する2つの並列NFETを有する。ゲートを2−1OAI(or-and-invertゲート)に変換し、余分なANDにゲートの出力がdon't careでないときハイとなる入力を追加することにより、ゲートにおけるリークが低減される。
【0054】
あるケースでは、論理ネットワークの大きな部分(多数のネット)が、同時にかなりの時間スリープ状態であり得る。これは例えば、未使用時に機能ユニット(例えばマルチプレクサ)がオフされる場合などにしばしば見受けられる。こうしたケースでは、変更タイプとして、変更セットを考慮することにより、より高機能な選択が行われ得る。これにより変更の間の相互作用が加味される。これは次のステップにより行われる。
【0055】
ステップ1:リーク電流が低減されるべきサブネットワークを見い出す。サブネットワークの出力は、比較的長い時間安定である高い確率を有するdon't care関数を共用するべきである。1例は、体系的にスリープ状態に強制される機能ユニットの全ての出力である。こうしたサブネットワークはまた、共通カットセット内の全てのネットのODCのANDが1となる高い確率を有するように、サブネットワークの全ファンアウトをインタセプトする共通のカットセットを見い出すことによっても見い出される。例えば、図3において、サブネットワークは、ファンアウトがカット35'により完全にインタセプトされる全てのネット及びブロックを含むように定義される。サブネットワークの入力はラッチか、論理値が強制される中間信号である。
【0056】
ステップ2:各サブネット入力上の値を独立に0及び1に強制するために、どちらが最低リークを与えるかを判断する(すなわち一時的に入力を各値に強制する)。これはサブネットワーク入力の数の2倍に等しい、多数のパターン・アプリケーションを要求する(サブネットワーク入力が既にある値に強制されている場合、信号はその反対の値に強制される必要があるだけである)。値の変化の強制がパワーを低減しない場合、または入力を強制するために要求される追加の論理の犠牲が達成される利点を上回る場合、アプリケーションが実施され、所望の低リーク状態が見い出される。それ以外では、アプリケーションは最も有利な入力を、最大の利点をもたらすと決定された値に強制する。
【0057】
ステップ3:改善が見い出されなくなるまで、ステップ2を繰り返す。
【0058】
これらのステップの詳細が、図9乃至図12に関連して述べられる。図9は、4つの入力a、b、c、及びdを有する論理ネットワーク100を示す。これらの入力から発する共有領域102、104、106及び108は、入力のそれぞれのファンアウト・コーンを表す。図示のように、入力a及びbのファンアウト・コーンはオーバラップし、入力b及びcのファンアウト・コーンについても同様である。この例では、低リーク・ベクトルの探索は、全ての入力を0にセットすることにより開始され、入力を1または0にセットする強制する犠牲は、0と仮定される。より一般的なケースでは、これらの信号は既に、例えば前述のBDD法により決定される状態確率を有し、関連する犠牲を伴う追加の論理が、各入力を強制するために要求される。最も単純なアプローチでは、図10に示されるように、各それぞれの入力について、その入力が単独で変化した場合、全体パワーの変化が決定される。次に、最大のパワー低減を示す入力(図10で丸印で囲まれる)が選択され、その入力が変更される。このプロセスは、ステップ4で、もはやパワー改善が不可能になるまで繰り返される。
【0059】
この方法の変形が図11に示され、ここではそのファンアウト・コーンがオーバラップしない入力のクラスタを見い出す。ステップ2での有向探索の一部が、様々なサブネットワーク入力及びラッチのファンアウト・コーンの間のオーバラップを決定することにより並列に実行される。値を1つずつ強制する代わりに、ファンアウト・コーンがオーバラップしない、従って、リーク・パワーへの影響が相互作用しない任意の個数の値が強制されてもよい。これは前もって入力を非オーバラップ・コーンに区分化し、各区分から強制すべき高々1入力を選択することにより行われる。この例では、第1のクラスタが入力a、b、cを含み、第2のクラスタが入力dだけを含む。前述のように、各基本入力に対してパワー変化が見い出されるが、最善のパワー低減を提供する各クラスタからの入力が選択される。図11に示される例では、第1のクラスタから入力cが選択され、第2のクラスタから入力dが選択され、これらが同時に変化される。このアプローチは以降、パワー低減が不能になるまで繰り返される。図11に示されるように、ステップ3では、可能な全ての変化がパワーを増加させる。
【0060】
或いは、同時に強制され得る入力の最も大きなセットを表す最大1つの色分け可能セット(one-colorable set)を見い出すために、より高機能なグラフ色分けアルゴリズムが使用される。こうした色分けアルゴリズムは、検討中の各入力を強制することにより生成されるリーク低減量により重みづけされる。従って、図12に示されるように、入力のグラフが作成され、ここでファンアウト・コーンがオーバラップしない任意の入力対の間にエッジが存在する。再度、各基本入力に対するパワー変化が決定される。その変化がパワーを低減する入力に対応するノードだけを含む、サブグラフの最大独立サブセットが見い出される。最大の独立セットは、最大の総重みを有するノードのセットであり(重みはノードを変化させることにより可能なパワー低減量である)、これはグラフ色分けアルゴリズム(graph coloring algorithm)により、単色で色分けされる。図12に示される例では、パワー低減を示す全ての入力は独立であり、従って同時に変化され得る。この最大独立セット内の全てのノードは変化され、プロセスはステップ2で、もはやパワー低減が不能になるまで繰り返される。
【0061】
或いは、衝突マトリックスを作成することにより、オーバラップが決定されてもよい。衝突マトリックスでは、2つのサブネットワークの入力のファンアウト・コーンがオーバラップするとき、"1"が入力される。次に、貪欲な方法により、同時に強制する入力のセットの選択が行われる。パワーを低減する最初の入力が、強制すべき入力として選択され、その後、強制される入力のセットに、ファンアウトがこれまでに追加された入力とオーバラップしない全ての入力が、1つずつ追加される。
【0062】
別の実施例では、強制を受けない信号確率から開始するのではなく、サブネットワークの入力上の強制値のランダムに決定されたセットから開始することが可能である。様々なこうしたランダム開始ポイントが使用され、前述のように、有向探索が各々から実行される。このことは問題の空間において局所極小を回避する支援となる。シミュレート化アニーリング法はまた、前述の探索に適用され、局所極小を回避する。
【0063】
図8に戻り、変更によりネットを強制した後、次のステップ212では、確率、関数、及びパワー計算などを更新する。次にステップ214で、許容可能な性能基準、すなわち、遅延、ノイズ、パワー消費などに従い、論理変更を保持する提案された関数を受諾するか、或いは拒否するかを決定する。次にステップ220では、移動が総合的な犠牲を低下させる場合、提案された論理変更が受諾され、この場合、強制される論理変更が設計において実施される。それ以外では、ステップ222で、提案された変更が拒否され、この場合には設計変更が行われない。提案された変更が受諾または拒否された後、プロセスはステップ230に進み、ここで追加の変更が加えられるべきか否かが判断される。この判断は、例えば、設計目標が満足されたか否か、或いは、プロセスのランタイムが指定限度値に達したか否か、または過去の何度かの繰り返しを通じて、意味のある改善が成されたか否かを確認することなどにより下される。更に追加の変更が行われるべきと判断される場合、プロセスは終了する。それ以外では、プロセスはステップ210にループして戻り、論理変更を保持する新たな関数が生成される。
【0064】
次に、本方法全体の適用例について述べることにする。図13は、本方法が適用される論理ネットワーク150を示す。各ネット、例えばネットX、Y、Z、Q、Rは、シンクの数及び総配線長に関連付けられるサイズ(キャパシタンス)を有する。各ゲート、例えばゲートGX、GY、GZ、GQ、GRもまた、その出力ネットのサイズ、及びそのタイミング要求に関連付けられるサイズを有する(例えばタイミング要求が厳しいゲートほど長い)。各ネットのスイッチング・パワーは、1/2fpCV2である。ここでfはクロック周波数、pはネット・スイッチング確率、Cはネット・キャパシタンス、Vは供給電圧である。これはネット・キャパシタンス及びスイッチング確率に比例する。各ゲートのリーク・パワーはゲート・サイズに比例する。論理ネットワーク150に使用されるゲートのリーク・パワーが、図15乃至図17の表に示される。各ゲートの値は、その状態が発生する確率と乗算され、合計がゲート・サイズと乗算されて、期待平均ゲート・リーク・パワーが得られる。ネット・スイッチング・パワーは、ネット・サイズにスイッチング・パワーを乗算した結果の100倍として計算される。
【0065】
ネット150の基本入力A乃至Eにおける信号(状態)確率が、図18に示され、一般にシステム・レベルのシミュレーションから導出される。スイッチング確率、すなわち、信号が所与の連続サイクル対の間で1から0に、または0から1に変化する確率が更に各信号に対して決定される。同様に、各ゲートに対して異なるリーク・パワーを生じる各入力条件の確率が決定される。これは前述のように、BDDにもとづく方法により行われる。1例として、ネットXのBDD及びノード確率が図19及び図20に示される。各ネットの確率及び結果のスイッチング・パワーが、図21に示される。各ゲートの確率及び結果のリーク・パワーが、図22及び図23に示される。これらから、ネットワークの総期待平均リーク・パワーは、13.0033となる。
【0066】
ゲートGZは最も大きなリーク・パワーを有するので、ODCがネットZについて生成され、リークを低減するために、ゲートZへの別の入力が追加されるか否かを確認するために使用される。ゲートZのODCは、NOT(A) OR (NOT(B) AND NOT(C))となり、Q及びRのZに関して、ブール・デリバティブ(Zの全てのファンアウトを通るカットを形成する)を得ることにより決定され、この条件が真である確率は0.925である。この関数を表す信号は、論理ネットワーク内に存在しないが、信号Aの反転がODC(Z)のサブセットであることが見い出される。BDDは、関数J AND NOT(K)を計算することにより、信号Jが信号Kのサブセットであるか否か(すなわちJがKを暗黙指定する)を判断するために容易に使用される。この関数が常に偽の場合、JはKの有効なサブセットである。図13の論理ネットワーク150の例に戻り、信号Aは1である低い確率(従ってその反転は1である高い確率を有する)、及びスイッチングの低い確率を有するので、リークを低減するための良い候補である。ネットの有効なODC(またはサブセット)の反転を、そのネットをドライブするANDまたはNANDゲートへの入力として追加することが受け入れ可能であるので、AをゲートGZへの追加の入力として追加する試行が行われる。結果のネットワーク150'が図14に示される。この変更されたネットワークにおける、各ネットの確率及び結果のスイッチング・パワーが図24に示される。この変更されたネットワークにおける、各ゲートの確率及び結果のリーク・パワーが、図25乃至図27に示される。ネットワークの総期待パワーは、10.48715であり、これはオリジナル(この例では、リーク・パワー及びスイッチング・パワーの両方の低減を含む)よりも小さいので、変更が保存される。
【0067】
以上、本発明は特にその好適な実施例について述べられてきたが、当業者であれば、前述の実施例の変更及び他の変更が、本発明の趣旨及び範囲から逸れることなく可能であることが理解できよう。
【0068】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0069】
(1)複数のネットを含む論理ネットワークのリーク・パワーを低減する方法であって、
a)前記論理ネットワーク内の1つ以上の第1のネットの可観測性don't care(ODC:observability don't care)情報を決定するステップであって、前記ODC情報が、前記第1のネットにおける入力値が前記論理ネットワークの出力値に影響しない前記入力値のセットを表し、前記ODC情報が、前記論理ネットワークの前記第1のネットのスリープ状態を識別するために使用され、
b)識別された前記スリープ状態の少なくとも1つの少なくとも一部の間に、前記第1のネットから選択された少なくとも1つのネットを、特定の値に強制するシミュレーションを実行し、期待パワー消費が低減される少なくとも1つのネットを決定する確率的分析を実行するステップと、
c)前記期待パワー消費が低減されるとき、前記スリープ状態部分の間に、選択された前記ネットを前記特定の値に強制するステップと
を含む、方法。
(2)前記確率的分析を実行するステップが、
1つ以上の選択されたネットの各々が第1の論理状態であり、それぞれの第1のリーク・パワー特性値を有する確率と、選択された前記ネットの各々が第2の論理状態であり、それぞれの第2のリーク・パワー特性値を有する確率とを決定するステップと、
選択された前記ネットの各々に対して、前記第1の状態のパワー・リークをそのそれぞれの第1の状態確率値と乗算し、前記第2の状態のパワー・リークをそのそれぞれの第2の状態確率値と乗算するステップと、
選択された前記ネットに対して、結果のリーク・パワーを推定するステップとを含む、前記(1)記載の方法。
(3)選択された前記ネットの各々が、それぞれのネットをドライブする少なくとも1つのゲート素子の少なくとも1つの論理入力を供給し、前記方法が、前記ゲート素子の入力における更新された確率にもとづき、論理変更のファンアウト・コーン内のネットの確率を再計算するステップを含む、前記(2)記載の方法。
(4)前記確率的分析を実行するステップが、
選択された各ネットに対して、前記ネットが第1の論理状態から第2の論理状態に、或いは第2の論理状態から第1の論理状態にスイッチする確率を計算するステップと、
選択された各ネットが特定の状態になるであろう期間を決定するステップと、
選択された各ネットの結果のパワーを推定するステップと
を含む、前記(2)記載の方法。
(5)前記ODC情報を決定するステップが、ODCのスイッチング確率を決定するステップを含む、前記(2)記載の方法。
(6)前記ステップb)において、特定の値に強制される少なくとも1つのネットの選択が、1つ以上の基準、すなわち、選択された前記ネットがODC状態にある確率が最大であるか否か、及び選択された前記ネットがこの状態にスイッチ・イン及びスイッチ・アウトする確率が最小であるか否かにもとづく、前記(5)記載の方法。
(7)選択されたネットを特定の値に強制するシミュレーションを実行する前記ステップb)が、前記ネットへの入力における論理信号の極性を変更するステップを含む、前記(5)記載の方法。
(8)選択されたネットを特定の値に強制するシミュレーションを実行する前記ステップb)が、ゲートをファクタリングするステップを含む、前記(5)記載の方法。
(9)選択されたネットを特定の値に強制するシミュレーションを実行する前記ステップb)が、ゲートのコピーを生成し、そのファンアウトをオリジナル・ネットとコピー・ネットとの間で分配するステップを含む、前記(5)記載の方法。
(10)選択されたネットを特定の値に強制するシミュレーションを実行する前記ステップb)が、1つ以上のバッファを追加するステップを含む、前記(5)記載の方法。
(11)選択されたネットを特定の値に強制するシミュレーションを実行する前記ステップb)が、ゲートへの論理信号の冗長な接続を追加及び削除するステップを含む、前記(5)記載の方法。
(12)選択されたネットを特定の値に強制するシミュレーションを実行する前記ステップb)が、前記ネット値がdon't careのとき、前記ネットを低リーク状態に強制する回路を入力に追加するステップを含む、前記(5)記載の方法。
(13)前記方法が、
選択された各ネットに対して、状態確率に関連してリーク・パワーのデリバティブを計算することにより、変更がその出力コーン内の論理のリークに与える総効果を決定するステップを含み、ネットの前記リーク・デリバティブが、前記ネットの状態確率の変化に関連付けられるリーク・パワーの変化を表し、
デリバティブ計算を前記ネットワークを通じて逆方向に伝搬させ、実行するステップを含む、前記(5)記載の方法。
(14)期待パワー消費が低減されるネットを決定する前記ステップが、パワー消費節約の決定を含み、前記方法が、
強制されるネットのファンアウト・コーン内の回路のパワー消費への影響を考慮するステップを含む、前記(3)記載の方法。
(15)期待パワー消費が低減されるネットを決定する前記ステップが、選択されたネットを、決定された値に強制するために使用される前記回路により要求されるパワー消費を考慮するステップを含む、前記(12)記載の方法。
(16)選択されたネットを強制する前記ステップc)に続き、前記ODC及び確率情報を更新するステップd)を実行し、所定の条件が満足されるまで、ステップb)からd)を繰り返すステップを含む、前記(1)記載の方法。
(17)前記スリープ状態部分が、全ての有効なスリープ状態のサブセットを含み、前記スリープ状態部分の計算が単純に計算される、前記(6)記載の方法。
(18)前記スリープ状態部分の決定が、前記論理ネットワークがスリープ状態の決定部分にある確率を最大化するステップを含む、前記(1)記載の方法。
(19)前記スリープ状態部分の決定が、前記論理ネットワークがスリープ状態の決定部分に留まる時間を最大化するステップを含む、前記(1)記載の方法。
(20)前記スリープ状態部分の決定が、スリープ状態の決定部分がスリープ状態の一部でもあるネットの数を最大化するステップを含む、前記(1)記載の方法。
(21)異なるスリープ状態部分の間に、選択されたネットが異なる状態に強制されるようにODC状態が区分化される、前記(1)記載の方法。
(22)前記強制するステップが、幾つかのネットを同時に論理値に強制するステップを含み、前記強制するステップが、
各ネットを論理0及び論理1の両方に独立に設定し、各設定において期待パワー消費の変化を決定するステップと、
最大パワー節約を与える状態に強制される少なくとも1つのネットを選択するステップと、
所定の条件が満足されるまで、前記設定及び選択ステップを繰り返すステップと
を含む、前記(20)記載の方法。
(23)前記選択するステップが、オーバラップしないファンアウト・コーンを有するネットのセットを選択するステップを含む、前記(22)記載の方法。
(24)複数のネットを含む論理ネットワークのリーク・パワーを低減する方法であって、
a)前記論理ネットワーク内のネットの状態関数、スイッチング関数及びそれらの確率を計算し、前記論理ネットワークのネットのスリープ状態、及びその確率を識別するために使用される可観測性don't care(ODC:observability don't care)関数を計算するステップと、
b)1つ以上の前記ネットの初期パワー・リーク計算を計算するステップと、c)前記1つ以上のネットの、少なくとも1つの選択されたネットの論理変更を保持する1つ以上の関数を決定し、スリープ状態の少なくとも一部の間に、前記選択されたネットを特定の値に強制する前記論理変更をシミュレートするステップと、
d)前記論理ネットワークの選択されたネットに対して、前記状態関数、スイッチング関数、及びODC関数を更新し、前記論理変更に照らして、これらの確率を更新するステップと、
e)前記選択されたネットの強制の結果生じる、該ネットのパワー・リーク変化を計算するステップと、
f)受け入れ可能な性能基準に従い、前記論理変更を保持する前記関数を受け入れるか拒否するかを決定するステップと
を含む、方法。
(25)前記決定するステップが、受け入れ可能な性能基準が満足されるまで、前記ステップc)乃至f)を繰り返すステップを含む、前記(24)記載の方法。
(26)前記受け入れ可能な性能基準が前記ネットワークのパワー消費を含む、前記(25)記載の方法。
(27)前記受け入れ可能な性能基準が前記ネットワークを通じる信号伝搬遅延を含む、前記(25)記載の方法。
(28)前記受け入れ可能な性能基準が前記ネットワーク内のノイズ・レベルを含む、前記(25)記載の方法。
(29)前記ステップc)における、特定の値に強制される少なくとも1つのネットの選択が、1つ以上の基準、すなわち、選択された前記ネットがODC状態にある確率が最大であるか否か、及び選択された前記ネットがこの状態にスイッチ・イン及びスイッチ・アウトする確率が最小であるか否かにもとづく、前記(24)記載の方法。
(30)選択ネットを特定の値に強制する論理変更を保持する1つ以上の関数を決定する前記ステップc)が、
前記ネットへの入力において、論理信号の極性を変更するステップと、
前記ネットワークのゲートをファクタリングするステップと、
ゲートのコピーを生成し、そのファンアウトをオリジナル・ネットとコピー・ネットとの間で分配するステップと、
1つ以上のバッファを追加するステップと、
ゲートへの論理信号の冗長な接続を追加及び削除するステップと
を含む、グループから選択される1つ以上のステップを含む、前記(24)記載の方法。
(31)選択ネットを特定の値に強制する論理変更を保持する1つ以上の関数を決定する前記ステップc)が、前記ネット値がdon't careのとき、前記ネットを低リーク状態に強制する回路を入力に追加するステップを含む、前記(24)記載の方法。
(32)前記方法が、
選択された各ネットに対して、状態確率に関連してリーク・パワーのデリバティブを計算することにより、変更がその出力コーン内の論理のリークに与える総効果を決定するステップを含み、ネットの前記リーク・デリバティブが、前記ネットの状態確率の変化に関連付けられるリーク・パワーの変化を表し、
デリバティブ計算を前記ネットワークを通じて逆方向に伝搬させ、実行するステップを含む、前記(24)記載の方法。
(33)期待パワー消費が低減されるネットを決定する前記ステップが、パワー消費節約の決定を含み、前記方法が、
強制されるネットのファンアウト・コーン内の回路のパワー消費への影響を考慮するステップを含む、前記(31)記載の方法。
(34)期待パワー消費が低減されるネットを決定する前記ステップが、選択されたネットを決定された値に強制するために使用される前記回路により要求されるパワー消費を考慮するステップを含む、前記(31)記載の方法。
(35)前記スリープ状態部分が、全ての有効なスリープ状態のサブセットを含み、前記スリープ状態部分の計算が単純に計算される、前記(29)記載の方法。
(36)前記スリープ状態部分の決定が、前記論理ネットワークがスリープ状態の決定部分にある確率を最大化するステップを含む、前記(24)記載の方法。
(37)前記スリープ状態部分の決定が、前記論理ネットワークが一旦スリープ状態の決定部分に入力したとき、該決定部分に留まる時間を最大化するステップを含む、前記(24)記載の方法。
(38)複数のネットを含む論理ネットワークのリーク・パワーを低減する方法を実行する、マシンにより実行可能な命令のプログラムを有する、前記マシンにより読取り可能なプログラム記憶装置であって、前記方法が、
a)前記論理ネットワーク内の1つ以上の第1のネットの可観測性don't care(ODC:observability don't care)情報を決定するステップであって、前記ODC情報が、前記第1のネットにおける入力値が前記論理ネットワークの出力値に影響しない入力値のセットを表し、前記ODC情報が、前記論理ネットワークの前記第1のネットのスリープ状態を識別するために使用され、
b)識別された前記スリープ状態の少なくとも1つの少なくとも一部の間に、前記第1のネットから選択された少なくとも1つのネットを、特定の値に強制するシミュレーションを実行し、期待パワー消費が低減される少なくとも1つのネットを決定する確率的分析を実行するステップと、
c)前記期待パワー消費が低減されるとき、前記スリープ状態部分の間に、選択された前記ネットを前記特定の値に強制するステップと
を含む、方法。
(39)前記確率的分析を実行するステップが、
1つ以上の選択されたネットの各々が第1の論理状態であり、それぞれの第1のリーク・パワー特性値を有する確率と、選択された前記ネットの各々が第2の論理状態であり、それぞれの第2のリーク・パワー特性値を有する確率とを決定するステップと、
選択された前記ネットの各々に対して、前記第1の状態のパワー・リークをそのそれぞれの第1の状態確率値と乗算し、前記第2の状態のパワー・リークをそのそれぞれの第2の状態確率値と乗算するステップと、
選択された前記ネットに対して、結果のリーク・パワーを推定するステップとを含む、前記(38)記載の方法。
(40)選択された前記ネットの各々が、それぞれのネットをドライブする少なくとも1つのゲート素子の少なくとも1つの論理入力を供給し、前記方法が、前記ゲート素子の入力における更新された確率にもとづき、論理変更のファンアウト・コーン内のネットの確率を再計算するステップを含む、前記(39)記載の方法。
(41)前記確率的分析を実行するステップが、
選択された各ネットに対して、前記ネットが第1の論理状態から第2の論理状態に、或いは第2の論理状態から第1の論理状態にスイッチする確率を計算するステップと、
選択された各ネットが特定の状態になるであろう期間を決定するステップと、
選択された各ネットの結果のパワーを推定するステップと
を含む、前記(40)記載の方法。
(42)前記ODC情報を決定するステップが、ODCのスイッチング確率を決定するステップを含む、前記(39)記載の方法。
(43)前記ステップb)において、特定の値に強制される少なくとも1つのネットの選択が、1つ以上の基準、すなわち、選択された前記ネットがODC状態にある確率が最大であるか否か、及び選択された前記ネットがこの状態にスイッチ・イン及びスイッチ・アウトする確率が最小であるか否かにもとづく、前記(42)記載の方法。
(44)選択されたネットを強制する前記ステップc)に続き、前記ODC及び確率情報を更新するステップd)を実行し、所定の条件が満足されるまで、ステップb)からd)を繰り返すステップを含む、前記(38)記載の方法。
(45)前記スリープ状態部分が、全ての有効なスリープ状態のサブセットを含み、前記スリープ状態部分の計算が単純に計算される、前記(44)記載の方法。
(46)パワー消費が低減された集積回路素子であって、ネットにおける入力値のセットが、論理ネットワークの出力値に影響しないスリープ状態を取り得る、1つ以上のネットを含む論理ネットワークを含み、少なくとも1つの前記ネットが、確率的分析により予め決定された低パワー消費を示すように、特定の値に強制され、前記論理ネットワーク内の素子が、期待パワー消費が低減されるスリープ状態の間に、選択された前記ネットを前記特定の値に強制する集積回路素子。
【図面の簡単な説明】
【図1】図1は、ネット機能の時刻X0 1及びXT 1における信号スイッチング確率変化を示すBDDツリー構造を示す図である。
【図2】論理ブロックを有する論理ネットワーク内において、OCDが計算される対象となるネットからの全てのパスをインタセプトするカットを定義する方法を示す図である。
【図3】論理ブロックを有する論理ネットワーク内において、OCDが計算される対象となるネットからの全てのパスをインタセプトするカットを定義する方法を示す図である。
【図4】単純なANDゲートの論理状態を強制する状況を示す図である。
【図5】単純なANDゲートの論理状態を強制する状況を示す図である。
【図6】単純なANDゲートの論理状態を強制する状況を示す図である。
【図7】本発明による感度分析において使用されるリーク・デリバティブのアプリケーション例を示す図である。
【図8】本発明の原理に従う論理システム設計方法を概念的に示すブロック図である。
【図9】図10乃至図12に従い、低リーク・ベクトル探索において使用される論理ネットワーク100を示す図である。
【図10】第1の探索アプローチに従い、図9のネットワークにおいて見い出される低リーク・ベクトルの結果を示す図である。
【図11】クラスタリング・アプローチに従い、図9のネットワークにおいて見い出される低リーク・ベクトルの結果を示す図である。
【図12】グラフ色分けアプローチに従い、図9のネットワークにおいて見い出される低リーク・ベクトルの結果を示す図である。
【図13】本発明の方法に従い実行される確率的分析の対象となる論理ネットワーク150を示す図である。
【図14】本発明の方法を適用により、リーク・パワーの低減のために設計された、図13のネットワークに対応する結果の論理ネットワーク150'を示す図である。
【図15】図13の論理ネットワーク150において使用されるゲートのリーク・パワー・テーブルを示す図である。
【図16】図13の論理ネットワーク150において使用されるゲートのリーク・パワー・テーブルを示す図である。
【図17】図13の論理ネットワーク150において使用されるゲートのリーク・パワー・テーブルを示す図である。
【図18】図13の論理ネットワーク150の基本入力A−Eに関する信号(状態)確率を示す図である。
【図19】図13の論理ネットワーク150のネットXのBDD及びノード確率を示す図である。
【図20】図13の論理ネットワーク150のネットXのBDD及びノード確率を示す図である。
【図21】図13の論理ネットワーク150内で示される各ネットの確率及び結果のスイッチング・パワーを示す図である。
【図22】図13の論理ネットワーク150の各ゲートの確率及び結果のリーク・パワーを示す図である。
【図23】図13の論理ネットワーク150の各ゲートの確率及び結果のリーク・パワーを示す図である。
【図24】図14の変更ネットワーク150'内の各ネットの確率及び結果のスイッチング・パワーを示す図である。
【図25】図14の変更ネットワーク150'の各ゲートの確率及び結果のリーク・パワーを示す図である。
【図26】図14の変更ネットワーク150'の各ゲートの確率及び結果のリーク・パワーを示す図である。
【図27】図14の変更ネットワーク150'の各ゲートの確率及び結果のリーク・パワーを示す図である。
【符号の説明】
10、100、150 論理ネットワーク
11 BDDツリー構造
12 最左端分岐
13 最右端分岐
16 分岐
18 パス
35 カット
40 対象ネット
70、80、82 ANDゲート
72 ORゲート
73 インバータ
102、104、106、108 共有領域
Claims (6)
- 複数のネットを含む論理ネットワークのリーク・パワーを低減するためにコンピュータに、
a)前記論理ネットワーク内の1つ以上の第1のネットの可観測性don't care(ODC:observability don't care)情報を決定するステップであって、
前記ODC情報が、前記第1のネットにおける入力値の値にかかわらず拘わらず、その出力をラッチするためにクロックを与えた状態の前記論理ネットワークの出力値に影響しない入力値を表し、前記ODC情報が、前記論理ネットワークの前記第1のネットのスリープ状態を識別するために使用される前記ODC情報を決定するステップと、
b)識別された前記スリープ状態の少なくとも1つの少なくとも一部の間に、前記第1のネットから選択された少なくとも1つのネットを、特定の値に強制するシミュレーションを実行し、期待パワー消費が低減される少なくとも1つのネットを決定する確率的分析を実行するステップと、
を実行させるプログラム。 - 前記確率的分析を実行するステップが、
1つ以上の選択されたネットの各々が第1の論理状態であり、それぞれの第1のリーク・パワー特性値を有する確率と、選択された前記ネットの各々が第2の論理状態であり、それぞれの第2のリーク・パワー特性値を有する確率とを決定するステップと、
選択された前記ネットの各々に対して、前記第1の状態のパワー・リークをそのそれぞれの第1の状態確率値と乗算し、前記第2の状態のパワー・リークをそのそれぞれの第2の状態確率値と乗算するステップと、
選択された前記ネットに対して、結果のリーク・パワーを推定するステップと
を含む、請求項1記載のプログラム。 - 選択された前記ネットの各々が、それぞれのネットをドライブする少なくとも1つのゲート素子の少なくとも1つの論理入力を供給し、前記プログラムが、前記ゲート素子の入力における更新された確率にもとづき、論理変更のファンアウト・コーン内のネットの確率を再計算するステップを更に含み、
前記確率的分析を実行するステップが、選択された各ネットに対して、前記ネットが第1の論理状態から第2の論理状態に、或いは第2の論理状態から第1の論理状態にスイッチする確率を計算するステップと、
選択された各ネットが特定の状態になるであろう期間を決定するステップと、
選択された各ネットに対して、結果のリーク・パワーを推定するステップと
を含む、請求項2記載のプログラム。 - 前記ODC情報を決定するステップが、ODCのスイッチング確率を決定するステップを更に含み、
前記ステップb)において、特定の値に強制される少なくとも1つのネットの選択が、1つ以上の基準、すなわち、選択された前記ネットがODC状態にある確率が最大であるか否か、及び選択された前記ネットがこの状態にスイッチ・イン及びスイッチ・アウトする確率が最小であるか否かにもとづく、請求項2記載のプログラム。 - 選択されたネットを強制する前記ステップb)に続き、前記ODC及び確率情報を更新するステップc)を実行し、所定の条件が満足されるまで、ステップb)からc)を繰り返すステップを含む、請求項1記載のプログラム。
- 前記スリープ状態部分が、全ての有効なスリープ状態のサブセットを含み、前記スリープ状態部分の計算が単純に計算される、請求項5記載のプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/750,969 US6687883B2 (en) | 2000-12-28 | 2000-12-28 | System and method for inserting leakage reduction control in logic circuits |
US09/750969 | 2000-12-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002230066A JP2002230066A (ja) | 2002-08-16 |
JP3836715B2 true JP3836715B2 (ja) | 2006-10-25 |
Family
ID=25019894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001369057A Expired - Fee Related JP3836715B2 (ja) | 2000-12-28 | 2001-12-03 | リーク低減制御を論理回路に挿入するシステム及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6687883B2 (ja) |
JP (1) | JP3836715B2 (ja) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215705A (ja) * | 2001-01-23 | 2002-08-02 | Toshiba Corp | 回路自動生成装置、回路自動生成方法及び回路自動生成プログラムを記録した記録媒体 |
US6718524B1 (en) * | 2001-09-17 | 2004-04-06 | Lsi Logic Corporation | Method and apparatus for estimating state-dependent gate leakage in an integrated circuit |
US20030217026A1 (en) * | 2002-01-31 | 2003-11-20 | Steven Teig | Structure for storing a plurality os sub-networks |
US7024639B2 (en) * | 2002-01-31 | 2006-04-04 | Cadence Design Systems, Inc. | Method and apparatus for specifying encoded sub-networks |
US7076760B2 (en) | 2002-01-31 | 2006-07-11 | Cadence Design Systems, Inc. | Method and apparatus for specifying encoded sub-networks |
US7398503B2 (en) * | 2002-01-31 | 2008-07-08 | Cadence Design Systems, Inc | Method and apparatus for pre-tabulating sub-networks |
US7383524B2 (en) * | 2002-01-31 | 2008-06-03 | Cadence Design Systems, Inc | Structure for storing a plurality of sub-networks |
US6981231B2 (en) * | 2002-02-22 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | System and method to reduce leakage power in an electronic device |
US7244743B2 (en) * | 2002-06-05 | 2007-07-17 | Solvay Pharmaceuticals Gmbh | Non-peptidic BRS-3 agonists |
US20040153303A1 (en) * | 2002-12-30 | 2004-08-05 | Le Tang | Efficient process for time dependent network model in an energy market simulation system |
US7302652B2 (en) * | 2003-03-31 | 2007-11-27 | Intel Corporation | Leakage control in integrated circuits |
US7096374B2 (en) * | 2003-05-21 | 2006-08-22 | Agilent Technologies, Inc. | Method and apparatus for defining an input state vector that achieves low power consumption in digital circuit in an idle state |
US7162652B2 (en) * | 2003-06-20 | 2007-01-09 | Texas Instruments Incorporated | Integrated circuit dynamic parameter management in response to dynamic energy evaluation |
US6920621B1 (en) * | 2003-08-20 | 2005-07-19 | Xilinx, Inc. | Methods of testing for shorts in programmable logic devices using relative quiescent current measurements |
US7137080B2 (en) * | 2003-08-22 | 2006-11-14 | International Business Machines Corporation | Method for determining and using leakage current sensitivities to optimize the design of an integrated circuit |
US7395524B2 (en) * | 2003-08-28 | 2008-07-01 | International Business Machines Corporation | Method, system and program product providing a configuration specification language having clone latch support |
US6993737B1 (en) * | 2003-09-11 | 2006-01-31 | Xilinx, Inc. | Leakage power optimization for integrated circuits |
JP2005250874A (ja) * | 2004-03-04 | 2005-09-15 | Toshiba Corp | 回路シミュレーション装置、回路シミュレーション方法を格納するコンピュータ記録媒体及び回路シミュレーションプログラム |
US7278120B2 (en) * | 2004-07-23 | 2007-10-02 | Synplicity, Inc. | Methods and apparatuses for transient analyses of circuits |
US7325210B2 (en) * | 2005-03-10 | 2008-01-29 | International Business Machines Corporation | Hybrid linear wire model approach to tuning transistor widths of circuits with RC interconnect |
US7444610B1 (en) | 2005-08-03 | 2008-10-28 | Xilinx, Inc. | Visualizing hardware cost in high level modeling systems |
US20070168792A1 (en) * | 2005-12-09 | 2007-07-19 | International Business Machines Corporation | Method to Reduce Leakage Within a Sequential Network and Latch Circuit |
US7516425B2 (en) * | 2005-12-22 | 2009-04-07 | Industrial Technology Research Institute | Method for generating minimal leakage current input vector using heuristics |
US7444499B2 (en) * | 2006-03-28 | 2008-10-28 | Sun Microsystems, Inc. | Method and system for trace generation using memory index hashing |
FR2902910B1 (fr) * | 2006-06-26 | 2008-10-10 | Coupling Wave Solutions Cws Sa | Procede de modelisation du bruit injecte dans un systeme electronique |
JP4999379B2 (ja) * | 2006-07-10 | 2012-08-15 | フリースケール セミコンダクター インコーポレイテッド | 半導体集積回路設計方法、半導体集積回路設計装置 |
US7779381B2 (en) * | 2006-09-11 | 2010-08-17 | Cadence Design Systems, Inc. | Test generation for low power circuits |
GB2447944B (en) * | 2007-03-28 | 2011-06-29 | Advanced Risc Mach Ltd | Reducing leakage power in low power mode |
US8341612B2 (en) * | 2007-05-16 | 2012-12-25 | International Business Machines Corporation | Method and apparatus for run-time statistics dependent program execution using source-coding |
US7873923B2 (en) * | 2008-02-28 | 2011-01-18 | International Business Machines Corporation | Power gating logic cones |
JP5195149B2 (ja) * | 2008-08-11 | 2013-05-08 | 富士通株式会社 | 真偽判定方法 |
US8049550B2 (en) * | 2008-09-10 | 2011-11-01 | Freescale Semiconductor, Inc. | Method for power reduction and a device having power reduction capabilities |
US8161434B2 (en) * | 2009-03-06 | 2012-04-17 | Synopsys, Inc. | Statistical formal activity analysis with consideration of temporal and spatial correlations |
US8626480B2 (en) | 2009-10-06 | 2014-01-07 | International Business Machines Corporation | Compact model for device/circuit/chip leakage current (IDDQ) calculation including process induced uplift factors |
JP5428895B2 (ja) * | 2010-01-22 | 2014-02-26 | 富士通株式会社 | 論理回路設計方法及びプログラム |
US8984048B1 (en) | 2010-04-18 | 2015-03-17 | Viasat, Inc. | Selective prefetch scanning |
US8296701B2 (en) * | 2010-12-28 | 2012-10-23 | Texas Instruments Incorporated | Method for designing a semiconductor device based on leakage current estimation |
US8751999B2 (en) * | 2011-07-05 | 2014-06-10 | Fujitsu Limited | Component placement tool for printed circuit board |
US9100002B2 (en) * | 2013-09-12 | 2015-08-04 | Micron Technology, Inc. | Apparatus and methods for leakage current reduction in integrated circuits |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870308A (en) | 1990-04-06 | 1999-02-09 | Lsi Logic Corporation | Method and system for creating and validating low-level description of electronic design |
US5508937A (en) | 1993-04-16 | 1996-04-16 | International Business Machines Corporation | Incremental timing analysis |
AU2816495A (en) | 1994-06-03 | 1996-01-04 | Synopsys, Inc. | Method and apparatus for estimating the power dissipated by a digital circuit |
US5515302A (en) | 1994-11-07 | 1996-05-07 | Motorola, Inc. | Method for identifying excessive power consumption sites within a circuit |
KR100223770B1 (ko) | 1996-06-29 | 1999-10-15 | 김영환 | 반도체 장치의 문턱전압 제어회로 |
US6191606B1 (en) * | 1998-09-10 | 2001-02-20 | Intel Corporation | Method and apparatus for reducing standby leakage current using input vector activation |
US6711719B2 (en) * | 2001-08-13 | 2004-03-23 | International Business Machines Corporation | Method and apparatus for reducing power consumption in VLSI circuit designs |
-
2000
- 2000-12-28 US US09/750,969 patent/US6687883B2/en not_active Expired - Lifetime
-
2001
- 2001-12-03 JP JP2001369057A patent/JP3836715B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6687883B2 (en) | 2004-02-03 |
JP2002230066A (ja) | 2002-08-16 |
US20020116440A1 (en) | 2002-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3836715B2 (ja) | リーク低減制御を論理回路に挿入するシステム及び方法 | |
US6556962B1 (en) | Method for reducing network costs and its application to domino circuits | |
US6851095B1 (en) | Method of incremental recharacterization to estimate performance of integrated disigns | |
US7340698B1 (en) | Method of estimating performance of integrated circuit designs by finding scalars for strongly coupled components | |
US20050091025A1 (en) | Methods and systems for improved integrated circuit functional simulation | |
US20070283305A1 (en) | System and Method for Providing an Improved Sliding Window Scheme for Clock Mesh Analysis | |
Mishchenko et al. | Scalable and scalably-verifiable sequential synthesis | |
WO2008150889A1 (en) | A method for automatic clock gating to save power | |
Ozdal et al. | Algorithms for gate sizing and device parameter selection for high-performance designs | |
Chen et al. | Simultaneous timing-driven placement and duplication | |
US7131078B1 (en) | Method and apparatus for circuit design and synthesis | |
Ubar et al. | Fast identification of true critical paths in sequential circuits | |
Bommu et al. | Retiming-based factorization for sequential logic optimization | |
Minkovich et al. | Mapping for better than worst-case delays in LUT-based FPGA designs | |
US20070083350A1 (en) | Estimation of average-case activity for a digital circuit using activity sequences | |
Neophytou et al. | Path representation in circuit netlists using linear-sized ZDDs with optimal variable ordering | |
Mehrotra et al. | Timing-driven power optimisation and power-driven timing optimisation of combinational circuits | |
Chong et al. | Characterization of feasible retimings | |
Das et al. | FA-STAC: A framework for fast and accurate static timing analysis with coupling | |
Lin | Design automation for circuit reliability and energy efficiency | |
Beraudo | A path based algorithm for timing driven logic replication in FPGA | |
Marques | Technology mapping for virtual libraries based on cells with minimal transistor stacks | |
Ling | Field-Programmable Gate Array Logic Synthesis Using Boolean Satisfiability | |
Fouda et al. | Average and maximum power consumption of digital CMOS circuits using Logic Pictures | |
Becer et al. | Short Papers_ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050531 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050805 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050810 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060418 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060605 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060718 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060727 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100804 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110804 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120804 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130804 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |