説明

活動センサでデジタル回路を設計するシステム及び方法

【課題】SoC回路の場合であっても、機能記述ファイルに基づいてデジタル回路がそれ自体の出力変数(温度など)を計算できるようにする。
【解決手段】デジタル回路の機能記述を含むファイル14に基づいたデジタル回路シミュレータ12とシミュレータ12に供給されるテストベンチ26を実行する時にデジタル回路から出力変数30’を予想する手段28とイベントカウンタ34’とを含み、イベントは、テストベンチ26を実行する時にシミュレータ12によって提供された制御信号を用いて検出される。システムは、イベントカウンタからの出力データを用いてデジタル回路の出力変数30’を計算するモデルを反復して最適化することによって、イベントカウンタ34’の一部を選択する手段40、44とイベントカウンタの選択された部分及び最適化された計算モデルを登録する手段40、44とを更に含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、活動センサでデジタル回路を設計するシステムに関するものである。本発明はまた、このシステム及び対応するコンピュータプログラムによって実行される方法に関連するものである。
【0002】
本発明は、−このデジタル回路の機能記述を含むファイルに基づくデジタル回路シミュレータと、−シミュレータに供給されるテストベンチを実行する時にデジタル回路からの出力変数を予想する手段と、−テストベンチを実行する時にシミュレータによって提供される制御信号を用いてイベントが検出されるイベントカウンタとを含む、デジタル回路を設計するシステムに特に適用されるものである。
【背景技術】
【0003】
イベントカウンタは、シミュレーションされたデジタル回路で活動センサを形成する。イベントカウンタは、例えば動力消費量、放出温度などの未解明の回路における実際の出力変数を、モデルを用いて計算するためにそのようなセンサによって供給されたデータを使用することが知られている。したがって、シミュレーションによって与えられた出力変数の連続値及びイベントカウンタによって供給されたデータを知ることにより、線形回帰でこの出力変数を計算するようにモデルを構築することが知られている。このモデルはそれから、前にシミュレーションされた実際の回路において(現在の活動を捕らえる)モニタ及び(モデルを適用する)計算機を用いて実行され得る。そのような計算の利点は、それが実行されたプログラムに基づいて回路の活動を報告し、動的制御ループの回路の労力を調整することである。計算モデルからの出力はそれから、予想の変数を最適化するために回路の機能ブロックの周波数及びそれらの電圧を調整する調節システムに供給され得る。
【0004】
システムオンチップ(SoC)設計のような複雑なデジタル回路の出力変数を計算するためにそのようなモデルを適用したい場合、問題が生じる。そのような回路の表面は一般に制限されるので、制御信号上で、それゆえにイベントカウンタ上での選択が必要になる。選択は通常、アーキテクチャについての従来の知識に基づいて直観的に実行される。しかしながら、これはSoCの複雑性の増大によりややこしくなった退屈なタスクである。
【0005】
例えば、米国特許第7,590,894号、米国特許第7,269,756号及び米国特許第6,356,615号で公開された特許において、低コストで構成可能なモニタユニットが、この選択を作成するために提案される。その概念は、このユニットにできるだけ多くの制御信号を接続することである。そして、その変化が追跡されるような信号を示すように構成される。構成は、所定の指示によりアプリケーションレベルで実行される。特に米国特許第7,590,894号は、この構成論理を実行するためにエンコーダ/デコーダの一体化を提案し;米国特許第7,269,756号は、上流の結合論理でマスクレジスタを使用し;米国特許第6,356,615号において、カウンタは信号をモニタし、システムにおいてそれらのうちの2以上を結合するように構成され得る。
【0006】
第12回アジア及び南太平洋デザイン・オートメーション会議2007、ASP−DAC‘07(ASP−DAC’07, 12th Asia and South Pacific Design Automation Conference 2007)の会議録、890−895ページ、2007年1月23−26日において発表された「クリッパー:実行時のカウンタベースの低インパクトプロセッサ電力予想」(CLIPPER: Counter−based low impact processor power estimation at run−time)と名付けられたペダーソン他(Pedderson et al.)による論文において、信号及び消費プロファイルの形状の直接の観察に基づいて信号を選択するのにアルゴリズムが提案される。この方法は非実用的であり、又は、特殊かつ複雑なSoC回路では使用不可能でさえある。
【0007】
それゆえに、上記の問題及び制約の少なくともいくつかを克服することができるデジタル回路設計システムを提供することが望ましい。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】米国特許第7,590,894号公報
【特許文献2】米国特許第7,269,756号公報
【特許文献3】米国特許第6,356,615号公報
【特許文献4】米国特許第7,590,894号公報
【特許文献5】米国特許第7,269,756号公報
【特許文献6】米国特許第6,356,615号公報
【非特許文献】
【0009】
【非特許文献1】ペダーソン他(Pedderson et al.)、「クリッパー:実行時のカウンタベースの低インパクトプロセッサ電力予想」(CLIPPER: Counter−based low impact processor power estimation at run−time)、第12回アジア及び南太平洋デザイン・オートメーション会議2007(12th Asia and South Pacific Design Automation Conference 2007)ASP−DAC‘07会議録、890−895ページ、2007年1月23−26日
【発明の概要】
【課題を解決するための手段】
【0010】
本発明はそれゆえに、−このデジタル回路の機能記述を含むファイルに基づくデジタル回路シミュレータと、−シミュレータに供給されたテストベンチを実行する時にデジタル回路からの出力変数を予想する手段と、−テストベンチを実行する時にシミュレータによって提供された制御信号を用いてイベントが検出されるイベントカウンタとを含み、−イベントカウンタからの出力データを用いてデジタル回路の出力変数を計算するモデルを反復して最適化することによってイベントカウンタの一部を選択する手段と、−イベントカウンタの選択された部分及び最適化された計算モデルを登録する手段と、をさらに含むデジタル回路を設計するシステムに関連するものである。
【0011】
モデルに最終的に関与するイベントカウンタの進行的選択自体と計算モデルの進行的最適化とを反復して結合することによって、最初に多数の潜在的な候補のイベントカウンタからでさえも、カウンタの効果的かつ自動的な選択をすることが可能になる。さらに反復的な最適化と同様、選択されるカウンタの数を制限するために、停止基準が選択され得る。それゆえに、回路が複雑であり変わっている、又は、SoC回路の場合であっても、機能記述ファイルに基づいてデジタル回路がシミュレーションされ得る瞬間から、回路がそれ自体の出力変数(消費、温度など)を計算できるようにするため、その製造の上流において活動センサの大きさを設定することが可能になる。
【0012】
任意に、デジタル回路の出力変数を予想する手段は、テストベンチを実行する時に各々の瞬間でシミュレーションされたデジタル回路によって消費される電力のプロファイルを提供するように設計された消費シミュレータを含む。
【0013】
本発明はまた、−このデジタル回路の機能記述を含むファイルに基づいてデジタル回路の動作をシミュレーションするステップと、−シミュレーションへの入力として供給されるテストベンチを実行する時にデジタル回路の出力変数を予想するステップと、−テストベンチを実行する時にシミュレーションによって供給された制御信号を用いて検出されるイベントを計数するステップとで構成されるステップを含み、−イベントカウントデータを用いてデジタル回路の出力変数を計算するモデルを反復して最適化することにより計数されたイベントの一部を選択するステップと、−計数されたイベント及び最適化された計算モデルの選択された部分を登録するステップと、で構成されるステップをさらに含むデジタル回路を設計する方法に関連するものである。
【0014】
任意に、選択ステップの前に、予想された出力変数及びイベントカウンタ出力データは、共通の所定期間によりそれらの値のサンプルをとることによって同期される。
【0015】
また任意に、選択ステップの前に、計数されたイベントの一部は、所定の制限より少ないビットを有する信号を用いて計数されたイベントのみを保つ、及び/又は、独立性が相互相関により測定されている互いに独立している信号を用いて計数されたイベントのみを保つことによって事前選択される。
【0016】
また任意に、選択ステップは、段階的回帰方法により実行される。
【0017】
また任意に、段階的回帰方法は直線回帰を含み、最適化される計算モデルはイベントカウントデータ及び回帰定数の線形の組合せである。
【0018】
また任意に、段階的回帰方法は、−各々のイベントの計数データ値と予想された出力変数値との間の相関を計算し、最も高い相関の計数イベントを選ぶことにより、第1の計数イベントを選ぶ第1のステップと、−選択された第1の計数イベントを最小二乗法の最小化によって計算モデルに一体化する第2のステップとを含む。
【0019】
また任意に、第1の計数イベントを選択して一体化する第1及び第2のステップの後、段階的回帰方法は、少なくとも一回、次のステップ:−まだモデルに一体化されていない各々のイベントの計数データ値と、すでにモデルに一体化された計数イベントを取り消すことによって予想される出力変数値との間の部分的な相関を計算して、その部分的な相関に関連した重要度テストを最適化する計数イベントを選択することによって新規な計数イベントを選ぶステップと、−重要度テストが第1の所定の閾値を下回るタイプIの確率値を提供する場合、●すでにモデルに一体化された他の計数イベントと新しく選択された計数イベントとを取り消すことによって、すでにモデルに一体化された計数イベントの部分的な相関を更新し、更新された部分的な相関重要度テストが第2の所定の閾値より大きい計数イベントをモデルから出力し、●最小二乗法の最小化によって、計算モデルに新しく選択された計数イベントを一体化し、この一体化が計算モデルの決定の調整されたR係数への更新をさらに含むステップと、−ステップのループを出るステップであって、●新しい選択された計数イベントの重要度テストが第1の閾値より大きい場合、最小二乗法の最小化によって得られた最後のモデルを最適のモデルとして保つ、又は、●決定の調整されたR係数への更新がその値を減少させる場合、最小二乗法の最小化によって得られた最後から二番目のモデルを最適のモデルとして保つステップと、のルーピングを含む。
【0020】
最後に、本発明はまた、前記プログラムがコンピュータで実行される時に本発明のデジタル回路を設計する方法のステップを実行する指示を含む、通信ネットワークからダウンロードされる及び/又はコンピュータ可読の媒体にセーブされる及び/又はプロセッサによって実行され得るコンピュータプログラムに関連するものである。
【図面の簡単な説明】
【0021】
本発明は、単に参照として与えられる以下の記載を用いて、添付の図面を参照してよりよく理解される。図面の説明は以下の通りである。
【図1】図1は、本発明の一実施態様によりデジタル回路を設計するシステムの一般的な構造を概略的に示すものである;
【図2】図2は、デジタル回路イベントカウンタを選択するために図1のシステムによって実行される第1の方法の連続したステップを示すものである;
【図3】図3は、図2における選択方法の実行によって提供される出力変数計算モデルを用いるために設計されたデジタル回路の全体的な構造を概略的に示すものである;
【図4】図4は、すでに選択されたイベントカウンタからデジタル回路出力変数計算モデルを構築するための図1のシステムによって実行される第2の方法の連続したステップを示すものである;
【図5】図5は、図4における構築方法の実行によって提供される出力変数計算モデルを用いるために設計されたデジタル回路の全体的な構造を概略的に示すものである。
【発明を実施するための形態】
【0022】
以下の記載は、都合よく結合され得るにもかかわらず互いに独立している二つの異なる部分を含む。
【0023】
第1の部分は、その出力がデジタル回路の出力変数計算モデルに供給される意図を有するイベントカウンタの選択を含むデジタル回路を設計するシステム及び方法に関するものである。この選択は、テストベンチ及び所定の計算モデルの最適化基準に基づいて、デジタル回路の動作をシミュレーションすることによって実行される。第1の部分はまた、直接測定する必要なくこの出力変数を予想するためにイベントカウンタの選択の間、最適化される計算モデルを用いるデジタル回路に関するものである。
【0024】
第2の部分は、直接測定する必要なくこの出力変数を予想するためにそのような計算モデルを用いるデジタル回路と同様にデジタル回路出力変数を計算するためのモデルの構築を含むデジタル回路を設計するシステム及び方法に関するものである。
【0025】
第1の部分は、イベントカウンタを選択した後、計算モデルを構築するのに不可欠ではないという意味において第2の部分とは別のものである。第1の部分の終わりで最適化される所定の計算モデルで十分である。第2の部分は、第1の部分で実行されるようにモデルの構築が必ずしもイベントカウンタの事前選択とみなされるわけではないという意味において第1の部分とは別のものである。所定のイベントカウンタは、それらを選ぶのに使用される方法に関係なくこの第2の部分への入力として提供されなければならないので、計算モデルはこれらのカウンタに基づいて構築される。しかしながら、両方の部分は、選択の間、最適化され得る第1の所定のモデルに基づいてイベントカウンタを選んだ後、第1の部分とは別のものであり、それとは異なる第2のモデルがこれらの選択されたカウンタに基づいて構築され得る意味において都合よく結合される。これらの組合わされた操作は、デジタル回路を設計するための完全なシステムによって、実行される。
【0026】
例えば、計算が要求されるデジタル回路出力変数は、各々の瞬間でこの回路によって消費される電力である。この例は、残りの記載の全体にわたって使われるが、本発明は、例えば各々の瞬間で回路によって発される熱の量又はその温度のような他の出力変数の計算に関するものである。
【0027】
第1の部分:デジタル回路をシミュレーションすることによるイベントカウンタの選択
図1に示されるデジタル回路を設計するシステム10は、このデジタル回路の機能記述を含むファイル14からのデジタル回路のシミュレータ12を含む。ファイル14はより詳しくは、VHDL(「超高速集積回路ハードウェア記述言語」)対応のようにデジタル回路を占めている機能ブロックの記述を含むファイルであり、特に合成可能RTL(「レジスタ転送レベル」)言語で書かれている。
【0028】
シミュレータ12はまず、機能記述ファイル14に基づいて二つの構造の記述ファイル18及び20を生成することができる階層シンセサイザ16を含む。この階層シンセサイザは例えば、Design Compiler(商標)ツールである。階層シンセサイザ16によって供給される第1の構造記述ファイル18は、ゲート、及び、デジタル回路の機能ブロック間の接続の記述を含むファイルである。SDF(「標準遅延フォーマット」)フォーマットのように階層シンセサイザ16によって供給される第2の構造記述ファイル20は、機能ブロックのゲート間の伝搬時間の記述を含むファイルである。
【0029】
シミュレータ12は、二つの構造記述ファイル18、20及びテストベンチファイル26から、例えばVCD(「値変更ダンプ」)フォーマットで、活動報告ファイル24を供給することができる合成後シミュレータ22をさらに含む。この活動報告ファイル24は特にテストベンチ26を実行する時に、第1の構造記述ファイル18において定められるゲート間の切替え活動を報告する。
【0030】
シミュレータ12はまた、所定の変数の出力シミュレータ28を含む。この例では、シミュレータ28は、活動報告ファイル24から、テストベンチ26を実行する時にシミュレーションされたデジタル回路によって各々の瞬間で消費される電力をプロファイルするファイル30を供給するように設計される例えばPrime Power(商標)ツールのような消費シミュレータである。他の出力変数(熱交換、回路温度など)の予想が必要である場合、シミュレータ28は、したがって単純に適合されなければならない。
【0031】
最後に、シミュレータ12は、シミュレーションされたイベント検出器によって提供された制御信号を用いて検出されたイベントを含むファイル34を供給することができる機能シミュレータ32を含む。信号がバイナリ又はマルチビットコードであるかには関係なく、制御信号のイベントは、この制御信号を取ることができる値において一つのレベルから他のレベルへの通過として定められる。それゆえに、各々のゲートで又はデジタル回路の機能ブロックの各々の接続端部で捕らえられる制御信号が存在するので、計数するイベントが多くある。テストベンチ26を実行する時に、イベントはデルタサイクル精度で登録される。
【0032】
電力消費プロファイル・ファイル30及びイベントファイル34は、その主な機能が検出されたイベント及び各々の瞬間で消費された電力に関する情報をマップするようにこれら二つのファイルのデータを同期させることであり、その任意の機能がイベントを事前選択あるデジタル回路を設計するシステム10のインタフェース36にシミュレータ12からの出力として、供給される。事前選択はまず、制御信号の実際の識別から構成される。特定の制限より少ないビットの信号のみが使われ、それによって、データ及びアドレスバスを拒絶する。事前選択は第2に、独立した制御信号のみの保持から構成される。同一であるが、(例えばフリップフロップの入出力信号のように)オフセットされ、対向して、増幅器などへの入力として供給される二重の信号はしたがって排除される。一般的にいえば、制御信号間の相互相関は、本当に独立したもののみを事前選択するため、インタフェース36によって計算されてもよい。
【0033】
被同期電力消費プロファイル・ファイル30’及び複数の被同期及び事前選択イベントファイル34’(例えば各々のイベントのファイル)は、インタフェース36からの出力として供給される。ファイル34’は、したがってイベントカウンタを形成する。
【0034】
デジタル回路を設計するシステム10は、選択及びモデリングモジュール38をさらに含む。その第1の機能は、イベントカウンタからの出力データを用いてデジタル回路の電力消費を計算するモデルを反復して最適化することでインタフェースによって供給されるイベントカウンタ34’の一部を選ぶことである。第2の機能は、測定する必要なく消費を予想することができるデジタル回路の電力消費を計算するモデルを構築することである。第1の機能は、この第1の部分によってカバーされる。第2の機能は、第2の部分において詳述される。
【0035】
この選択及びモデリングモジュール38は例えば、総称指示42によって識別される一以上のメモリを有するプロセッサ40を含む従来のコンピュータのようなコンピュータ装置において実行される。メモリ42は、プロセッサ40によって実行される時、以下の機能を実行する指示のシーケンスから構成される一以上のコンピュータプログラム44、46を記憶する:−イベントカウント・データ(プログラム44)を用いてデジタル回路の電力消費を計算するため、モデルを反復して最適化することにより計数されるイベントの一部の選択、−選択された計数データ(プログラム46)から、この消費を予想することができるデジタル回路の電力消費を計算するモデルの構築。
【0036】
コンピュータプログラム44、46は別々のものとして示されるが、この分離は単に機能的なものであることに留意のこと。それらは、一以上のソフトウェア・プログラムに分類された方が好都合である。それらの機能はまた、専用の集積回路において少なくとも部分的にマイクロ・プログラム又はマイクロ配線されてもよい。したがって、二者択一的に、選択及びモデリングモジュール38を実行するコンピュータ装置は、同じ動作を実行するため(コンピュータプログラムなしで)デジタル回路に単独で含まれる電子装置によって交換することができる。
【0037】
シミュレータ12及びインタフェース36は、デジタル回路設計システム10全体がプロセッサ及び共有の記憶手段を有するコンピュータ装置において実行されるようにコンピュータによって実行され得ることにも留意のこと。
【0038】
選択及びモデリングモジュール38は、イベントカウンタ及び最適化された計算モデルの選択された部分から、出力として記録を提供する。この記録は、例えば、シミュレーションされたデジタル回路を製造する時に使われ得るファイル48の形で提供される。
【0039】
デジタル回路を設計するシステム10は、図2に示したもののような方法を実行する。
【0040】
この方法の第1のステップ100の間、階層シミュレータ16が起動すると、二つの構造記述ファイル18及び20が、与えられたデジタル回路の機能記述ファイル14を用いて供給される。
【0041】
第2のステップ102の間、合成後シミュレータ22が起動すると、活動レポートファイル24が、二つの構造記述ファイル18、20及びテストベンチファイル26を用いて供給される。
【0042】
次のステップ104の間、消費シミュレータ28が起動すると、シミュレーションされたデジタル回路によって各々の瞬間で消費される電力をプロファイリングするファイル30が、活動レポートファイル24から供給される。
【0043】
ステップ100、102及び104に平行して、ステップ106の間、機能シミュレータ32が起動すると、イベントファイル34が、機能記述ファイル14及びテストベンチファイル26から供給される。
【0044】
ステップ100、102、104及び106に続いて、ステップ108へ進み、その間にインタフェース36が起動すると、イベントがイベントカウンタを形成する複数のファイルを提供するために任意に事前選択されてもよく、この複数のファイルは、ファイル30’及び34’を供給するため、電力消費プロファイル・ファイル30と同期する。この時、サンプリング周期Tは、電力消費プロファイルを一連のサンプルをとられた電力消費に分割するために定められ、この直列における各々の値は、対応している時間ウィンドウT内でシミュレーションされる即時の電力の平均である。事前選択されたイベントカウンタはまた、この同じ周期Tに沿ってサンプルがとられる。各々の事前選択されたイベントカウンタで、一連の計数データが生成され、この直列における各々の値は、対応する時間ウィンドウT内の対応する計数されたイベントの数である。
【0045】
そして、イベントカウンタ34’の一部を選ぶ方法110は、プロセッサ40により実行されているプログラム44によって実施される。
【0046】
この選択方法110は、事前選択イベントカウンタの一部を用いてデジタル回路によって消費される電力を計算する所定のモデルに基づいて、段階的回帰方法により実行される。計算モデルは例えば、以下のように線形である:
=c+α・Nc+・・・+α・NCi+・・・+α・NCn
ここで、{Ci=l:nは、計算モデルに関与している一組のイベントカウンタであり、nはモデルの複雑性を特徴付けていて、Ncは、時間ウィンドウTのイベントカウンタCによって計数されるイベントの数であり、Pは、計算モデルを用いて値NCiから推論され得るようにこの同じ時間ウィンドウT内で消費される平均電力であり、cは、デジタル回路の静的電力及びモデルの修正項を含むモデルの回帰定数であり、αは、イベントカウンタCによって検出された活動による、集積回路の部分的な消費を定量化する係数である。
【0047】
選択方法110を実行する時、回帰定数及び係数αは計算モデルを最適化することによって反復して決定され、ここで以下に詳述される。
【0048】
したがって、ステップ112の間、各々の直列(Nc)とサンプルをとられた電力消費の直列(P)との間で相関が計算される。最も高い相関を有する直列(Nc)がこのステップの間に選ばれ、対応しているイベントカウンタが計算モデルに一体化される。
【0049】
それから、ステップ114の間、(Nc)のみに依存する電力消費を計算するモデルのMOD(1)と記録される第1のバージョンが、モデルにおいて使用されるイベントカウンタに対応して回帰定数c及び係数αを決定することによって予想される。この評価は、最小二乗法の最小化方法を用いて公知の方法で実行される。また、このステップの間、決定の調整されたR係数は、モデルMOD(1)で計算される。この係数Rは、0と1との間である。それは、モデルMOD(1)と測定との間(すなわち、直列(Nc)及び(P))で適合するものの質を判断するために用いられる。これは、モデルによって説明される情報量とモデルの複雑性によって荷重された関連する残りのエラーとの間の比率である。モデルの複雑性の増加がその質の十分な増加として正当化されるとそれは増加し、それ以外では減少する。
【0050】
次のステップ116は、kから2の繰り返しの反対値を初期化し、ステップ118の間、部分的な相関は、モデルMOD(k−1)及びサンプルをとられた電力消費の直列(P)にまだ一体化されていない各々の直列(Nc)の間で計算される。これらの部分的な相関は、モデルMOD(k−1)にすでに一体化された直列を取り消すことによって計算される。それから各々の部分的な相関に「p値」を提供している従来の重要度テストを受ける。このp値は、対応している部分的な相関の帰無仮説における第1種エラーを犯す確率である。最も低いp値Vpを有する直列(NCk)が、このステップの間、選ばれる。
【0051】
このp値Vpは、テストステップ120の間、第1の閾値p値VpINと比較される。VpINは、計算モデルのイベントカウンタの入力閾値を表す。デフォルトでは、閾値は例えば、0.05に設定される。値が低くなると、モデルに最終的に一体化されるイベントカウンタの数をより制限するようになり、より単純になるが、正確ではなくなる。前のステップの間選択された直列(NCk)のp値VpがVpINより大きい場合、選択方法110からの出力としてステップ122へ進む。
【0052】
この出力ステップ122の間、モデルMOD(k−1)は最適化された計算モデルであると考えられ、設計システム10によりそのパラメータに登録される。同様に、このモデルMOD(k−1)に考慮されるイベントカウンタは電力消費を予想するために最終的に関連すると考えられ、設計システム10によりそのように登録される。この繰り返しkのステップ118の間選択される最後の直列(NCk)に対応するイベントカウンタは計算方法に一体化されないことに留意のこと。
【0053】
代わりに、ステップ118の間選択される直列(NCk)のp値VpがVpINより小さい場合、計算モデルMOD(k−1)に一体化されるイベントカウンタをチェックするためにステップ124へ進む。このステップの間、新規な部分的相関が、モデルMOD(k−1)に一体化される各々の直列とサンプルをとられた電力消費の直列(P)と間で計算される。これらの新規な部分的相関は、モデルMOD(k−1)及び最も直近に選択された直列(NCk)にすでに一体化された他の直列を取り消すことによって計算される。新規な部分的相関は、それから各々の新規な部分的相関にp値を提供する従来の重要度テストを受ける。確かに、計算モデルへの新規なイベントカウンタの一体化により、他のイベントカウンタのすべてのp値がチェックされる。したがって、モデルにすでに一体化され、第2の閾値p値VpOUTより大きいp値を有するイベントカウンタの直列(NCi)は、対応しているカウンタのモデルからの出口を作成する。値VpOUTは、デフォルトで例えば、0.1に設定される。それは必然的にVpINより大きく、VpINに関しては、低くなるほど、モデルに最終的に一体化されるイベントカウンタの数をより制限するようになる。
【0054】
そして、ステップ126の間、電力消費を計算するモデルのMOD(k)と記される新規なバージョンは、以前に計算モデルに一体化されて削除されていないイベントカウンタに対応する回帰定数c及び係数αを更新することによって、予想される。この評価は、最小二乗法の最小化方法を用いて公知の方法で実行される。このステップの間、調整されたR係数の決定は、モデルMOD(k)で計算される。それは、モデルMOD(k)と測定との間(すなわち、選択されたイベントカウンタに対応している直列(NCi)と(P))での適合の質を判断するために用いられる。
【0055】
次のテストステップ128の間、モデルMOD(k)のR係数は、モデルMOD(k−1)のR係数と比較される。それが低い場合、出力ステップ122へ移動する。それ以外は、ステップ130へ進み、カウンタkを1ユニット増加させて、新規の繰り返しのためにステップ118に戻る。
【0056】
その選択方法からの出力として、電力消費計算モデルに用いられるイベントカウンタC,・・・,Cは、kの最後の値のモデルMOD(k−1)からのカウンタである。シミュレーションされた回路によって消費される電力を予想するために用いることができる最適化された計算モデルはそれから、対応している係数c,α...,αによって完全に定められる。
【0057】
図3にて図示したように、それ自体の電力消費を計算するそのようなモデルを実行する実際のデジタル回路52は、それから設計され得る。この図において、デジタル回路50は、設計システム10によって以前にシミュレーションされたデジタル回路52を含む。例えば、それはSoC回路である。設計システム10によって作成された選択によって、以前にシミュレーションされたデジタル回路52は、プログラム44を実行する時に選択されたカウンタに関連したイベント検出器DE,・・・,DEを備える。
【0058】
デジタル回路50はさらに、その電力消費を予想するために最適化された計算モデルを使用することができるモニタ54及び計算機56を含む。特にモニタ54は、検出器DE,・・・,DEによって供給されるイベントの情報を受信することができるイベントカウンタを形成するレジスタC,・・・,Cを含む。すべてのレジスタは、以前にシミュレーションされたデジタル回路52の活動センサを形成する。すべてのレジスタは、各々のサンプリング周期T(すなわち、タイマーによって制御される)でレジスタC,・・・,Cの内容Nc,・・・,NCnを自動的に読み込み、これらの内容Nc,・・・,NCnをメモリ60に転送し、rstリセット信号を送信することによってレジスタC,・・・,Cをリセットするために設計される制御モジュール58をさらに含む。計算機56は、プログラム44の実行中に最適化される係数c,α,...,αを記憶するメモリ62を含む。計算機56は、モニタ54によって供給された値Nc,・・・,NCnを通常に受信すると、メモリ62に記憶されたこれらの係数c,α...,αを用いて、以前にシミュレーションされたデジタル回路52によって消費された電力の値Pを各々の周期Tで計算することができるプロセッサ64をさらに含む。
【0059】
それ自体の電力消費を計算するようなモデルを実行するデジタル回路の実在の例は、選択されたイベントカウンタがChip_Select及びWrite_Enable信号と関連したカウンタであるRAM(ランダムアクセスメモリ)である。各々の周期Tで、これらの二つのカウンタの内容は、制御モジュール58によって読み込まれ、三つの係数c,α及びαを有する最適化された直線回帰モデルの用途のために計算機56に提供される。
【0060】
明らかに、上記のような活動センサでデジタル回路を設計するシステムにより、活動センサのサイズの制御のために設置され得る選択基準(VpIN)又は停止基準(VpOUT、R係数)でのイベントカウンタの自動的かつ効果的な選択が可能になる。
【0061】
さらに、実行された段階的回帰方法により、それらに関連した重みによるモデルへの関連に基づいて選ばれたイベントカウンタを順位付けすることができる。したがって、モデルにおいて用いられたイベントカウンタは、活動センサ及びこの順位付けに利用可能な面に基づいて選ばれる。
【0062】
第2の部分:デジタル回路出力変数のモデル化
デジタル回路を設計するシステム10は、図4にて図示したように、デジタル回路出力変数を計算するモデルを構築する方法も実行する。この計算モデルを構築する方法は、プロセッサ40によって実行されているプログラム46によって実行される。またこの例では、出力変数は、テストベンチ26を実行する時にシミュレーションされたデジタル回路によって各々の瞬間で消費された電力である。計算モデルのための入力データは、例えば第1の部分において選ばれたもののような所定のイベントカウンタによって供給されたデータである。第1の部分における選択方法が実行される場合、計算モデルのより高い精度のために、可能な限り短いサンプリング周期が選択される。
【0063】
この方法は特に、電力消費プロファイル・ファイル30’のような一連の予想された電力消費データ、及び、選択されたカウンタに対応するファイル34’のような選択されたイベントカウンタからの出力データから、デジタル回路によって消費された電力を計算する複数のモデルの構築から構成される。特に、この方法は電力消費が複数の可能なモードによるものとして、電力消費プロファイルを複数の連続したシーケンスに分割し、可能なモードの中から各々のシーケンスを単一のモードと関連させる。それから、各々の可能なモードの異なる電力消費計算モデルを構築する。
【0064】
複数の計算モデルを構築するこの方法は、マルコフモデルの各々の隠れた状態が可能なモードの一つに対応する隠れマルコフモデル決定方法により実行される。マルコフモデル、したがって複数の計算モデルの決定は、選択されたイベントカウンタからの電力消費プロファイル30’及び出力データ34’と関連したその最尤法に基づく。
【0065】
隠れマルコフモデルは例えば、2005年、ポールグレーブ経済学辞典(Palgrave Dictionary of Economics, 2005)で出版された「体制切替えモデル」(Regime−switching models)と称されたジェームズD.ハミルトン(James D. Hamilton)による論文で定義された、MSM(マルコフ切替えモデル)である。この場合、各々の隠れた状態又はモードEで、計算モデルは例えば、P(E)=c+α1,j・Nc+・・・+αi,j・NCi+・・・+αn,j・NCnのように線形であり、そこで、
{Ci=l:nは、計算方法に関与するのに選ばれた一組のイベントカウンタである。nはモデルの複雑性を特徴付ける。NCiは、すべてのイベントカウンタに共通の与えられた時間ウィンドウ内で、イベントカウンタCによって計数されるイベントの数であり、そこで平均電力消費が予想されるが、第1の部分において定められたサンプリング周期に必ずしも一定である又は等しいというわけではない。P(E)は、モードEと関連した計算モデルを用いて値NCiから推論され得る、同じ与えられた時間ウィンドウ内で消費される平均電力である。cは、デジタル回路の静的電力及びモデルの修正項を含む、モードEと関連しているモデルの回帰定数である。α1,jは、電力消費プロファイルがモードEに適合する時にイベントカウンタCによって検出された活動のために、デジタル回路の部分的な消費を定量化している係数である。
【0066】
複数のモデルからの回帰定数及び係数を用いて、mがマルコフモデルMSMの隠れた状態の数である場合、寸法mx(n+1)のマトリクスAは、
【0067】
【数1】

であることに留意のこと。
【0068】
マルコフモデルMSMの残りのエラーは相違σのガウス型ホワイトノイズであるとみなされる。
【0069】
最後に、各々の状態又はモードEから各々の状態又はモードEへの転移の確率で寸法mxmを有するマトリクスΠで、
【0070】
【数2】

であることに留意のこと。
【0071】
これらの記号で、三重項Θ=(A,σ,Π)は、選択されたイベントカウンタC,・・・,Cからの出力データを用いて各々の瞬間で消費される平均電力のプロセスPを表すことができるマルコフモデルMSMを完全に定める。選択されたイベントカウンタから電力消費プロファイル30’及び出力データ34’の三重項Θ =(A,σ,Π)に適用される最尤法を予想することによってモデル・パラメータは、図4で示されるMSMモデルを構築する方法に関して詳述されるように、公知の方法で決定される。
【0072】
第1の初期化ステップ200の間、所望の隠れた状態又はモードの数mが、定められる。これは、変更可能な値であり得る。次のステップ202の間、イベントカウンタは初期化され、定数は各々の隠れた状態又はモードの回帰定数を構成するためにそれらに加えられて、それで観測ベクトルX=(1,Nc,・・・,NCnを形成する。
【0073】
それから選択されたファイル30’及び34’の三重項Θ =(A,σ,Π)に適用される最尤法の予想が、ステップ204の間、実行される。この実行は公知であり、それゆえに詳述しない。要約すると、以下の尤度関数Lが最大になる:
【0074】
【数3】

ここで、Tはシミュレーションで提供される連続したサンプルの数であり、Eは一組の隠れた状態又はモードを指定している。
【0075】
このステップからの出力として、隠れた状態又はモードのシーケンスは、ファイル30’及び観測34’により提供された電力消費シーケンスで確立される。さらにマトリクスA及びΠが提供され、それによって、複数の対応するモード及び一方のモードから他方への転移の確率の複数の電力消費計算モデルを定める。
【0076】
ステップ200、202及び204は、mの異なる値で数回繰り返され、隠れた状態の数が選択されたファイル30’及び34’によって供給されたデータに関して最適化されるMSMモデルを最終的に保持する。
【0077】
ステップ204に続いて、計算を単純化する観点から、任意であるが都合よく、最も関連したイベントカウンタを選択するステップ206へ進む。第1の部分において選ばれたnイベントカウンタから、pは電力消費計算に関与するために保たれ、マトリクスAの最も低い係数を有するイベントカウンタを削除する。
【0078】
またステップ204に続いて、ステップ108の間の従来の相関の計算は、イベント発生でステップ204から出力として提供される一方のモードから他のモードへの転移を適合させるために使われ得る。これらのイベントは条件付きの重要なイベントであり、それらのカウンタは、消費モードにおいて変化を検出するために選択される。計算を単純化する観点から好都合である可能な実施態様において、重要なイベントは、ステップ206の間選ばれなかったn−pカウンタに関するイベントから選択される。そして、計算に最終的に関与しているpカウンタの選択によるモデルの単純化は、消費モード間の最高の転移を検出するための他のn−pカウンタの使用によって相殺される。
【0079】
ステップ208に続いて、ステップ210は、各々のモードから各々の他のモードへ形成される転移を重要なイベントで観測された転移から、確定的に予想することができるFSM(有限状態機械)のような有限自動装置又は有限状態機械(すなわちmモード)を運営する論理的規則の確立から構成される。同様に、ステップ206の間、確立されたる相関を有限状態機械の転移規則へと変換するこのステップは従来技術の範囲内であり、詳述されない。
【0080】
図4における方法を実行することで構築されるマルコフモデルMSMに基づいてそれ自体の電力消費を計算するモデルを実行しているデジタル回路は、図5にて図示したように設計され得る。
【0081】
この図において、デジタル回路50’は、設計システム10によって以前にシミュレーションされたデジタル回路52を含む。例えば、それはSoC回路である。設計システム10によって作成される選択により、以前にシミュレーションされたデジタル回路52は、プログラム44を実行する時に選ばれたカウンタに関するイベント検出器DE・・・,DEを備える。デジタル回路50’はさらに、その電力消費を予想するために以前に定められたマルコフMSM計算モデルを使用することができるモニタ54’及び計算機56’を含む。
【0082】
特に、第1の部分において選ばれたnカウンタの中から第1のpカウンタのみが電力消費計算のために使われる以前に言及された可能な実施態様によれば、モニタ54’は、第1のp検出器DE,・・・,DEによって供給されるイベント情報を受信することができるこれらのpイベントカウンタを形成するレジスタC,・・・,Cを含む。これらのレジスタのすべては、以前にシミュレーションされたデジタル回路52の活動センサを形成する。可変時間ウィンドウTのため、レジスタC,・・・,Cの内容Nc,・・・,Ncを自動的に読み込み、これらの内容Nc,・・・,Ncをメモリ60’へ転送し、rst1リセット信号を送信することによりレジスタC,・・・,Cをリセットするように設計された制御モジュール58’をさらに含む。
【0083】
図3の実施態様とは異なり、モニタ54’の性能を改良するために、モニタは固定されたサンプリング周期を受けない。このため、ステップ210の間、確立される論理的規則を再現する有限状態機械モジュール66’が含まれる。特に、電力消費計算のために用いられるもの以外のn−pカウンタのみが消費モード間の転移を検出するために用いられる、以前に言及された可能な実施態様によれば、モジュール66’は、最後のn−p検出器DEp+1,・・・,DEにより供給されたイベント情報を入力として受信する。出力として、モジュール66’は、そのような新規なモードEへの転移が検出されるたびに、デジタル回路52の新規な消費モードの情報Eを制御モジュール58’に提供する。もちろん、モジュール66’はまた、第1のp検出器DE,・・・,DEによって供給されるイベント情報の少なくとも一部を入力として受信することができる。
【0084】
レジスタC,・・・,Cの内容Nc,・・・,Ncを読み込み、この内容をメモリ60’へ転送し、レジスタC,・・・,Cをリセットする自動的な動作は、例えば、以下の二つのイベントによって制御される:−レジスタC,・・・,Cの少なくとも一つの飽和。
このため、制御モジュール58’はそのようなイベントが生じる時に飽和を示すsat信号を受信する、−消費モードへの変化。モードEのこの変化は、モジュール66’によって制御モジュール58’に通信される。
【0085】
これらのイベントは予測不可能であるので、モニタ54’は、レジスタC,・・・,Cの二つのリセットの間で経過した時間Tを供給することができるレジスタC,・・・,Cと同期するものと同じクロックclkを用いてタイマー68’をさらに含む。タイマー68’は、レジスタC,・・・,Cがリセットされるたびに、リセット信号rst2を用いて制御モジュール58’によってリセットされる。E及びTの値はそれから、制御モジュール58’によってメモリ60’にレジスタC,・・・,Cの内容Nc,・・・,Ncで送信される。それゆえに、メモリ60’は、連続した消費モードの履歴、各々のこれらの連続したモードの継続期間、及び、それらの計数データNc,・・・,Ncを記憶する。
【0086】
計算機56’は、プログラム46の実行中に計算されるマトリクスAからの係数を記憶するメモリ62’を含む。計算機56’は、モニタ54’によって提供された値E,T,Nc,・・・,Ncを受けるとメモリ62’に記憶されたマトリクスAからの係数を用いて、時間Tの間、以前にシミュレーションされたデジタル回路52によって各々の可変時間ウィンドウTで、各々の瞬間で消費される電力の平均値Pを計算することができるプロセッサ64をさらに含む。これは、Eの値を使用して、Nc,・・・,NcでそこからPの値を推論するマトリクスAの正しい直線回帰モデルを選択するためのものである。
【0087】
第1の部分において選択されたイベントカウンタがChip_Select及びWrite_Enable信号と関連したカウンタであるRAMの実例を見ると、四つの消費モード:読出し、書込み、読出し/書込みの交替、未定に対応する四つの隠れた状態を有するマルコフモデルMSMを適用することができる。マルコフモデルMSMによると、これら各々の四つの消費モードそれ自体の消費モデルを有する。それから、各々の瞬間でRAMによって消費される平均電力を計算するためにそれ自体をChip_Selectイベントカウンタに制限できることを証明することができる。
【0088】
加えて、四つの所定の消費モード間の転移を検出する有限状態機械は、Chip_Select及びWrite_Enable信号を受信すると、次のように定められる:
−Write_Enable信号が「1」に変わる時、「読出し」モードから「交替」モードに進む。
−Chip_Select信号が「1」に変わり、Write_Enable信号が「0」に変わる時、「書込み」モードから「交替」モードに進む。
−連続的な読出しの数が所定数(例えば16)を上回る時、「交替」モードから「読出し」モードに進む。
−連続的な書込みの数が所定数(例えば16)を上回る時、「交替」モードから「書込み」モードに進む。
−Chip_Select信号が「1」に変わり、Write_Enable信号が「0」に変わる時、「未定」モードから「読出し」モードに進む。
−Write_Enable信号が「1」に変わる時、「未定」モードから「書込み」モードに進む。
【0089】
Chip_Select信号のカウンタレジスタの各々のモード変化又は飽和で、レジスタの内容は、制御モジュール58’によって読出され、四つの状態装置によって検出された消費モードに基づいてマトリクスAにおいて選択された二つの係数を有する最適化された直線回帰モデルを適用するため、値E及びTで計算機56’に供給される。
【0090】
明らかに、第2の部分に記載されたように活動センサを用いてデジタル回路を設計するシステムは、複数のモードへ分解することができるデジタル回路出力変数を計算する複数のモデルを構築するために用いられ、それによっていくつかのイベントカウンタがモデルにおいて省かれ、それらの不在を異なるモードを含むことで相殺することができるという事実により、ほとんどオーバーヘッドなく、より正確にこれらのモデルを作成することができる。
【0091】
さらに、尤度関数の最大化を用いて隠れマルコフモデルを決定することによって複数のモデルを構築することにより、サンプリング周波数から独立して有限状態機械を用いて選択することができる計算モデルを得る結果につながる。この特性は、活動センサにより大きな柔軟性を提供し、同期を節減させる。一般に従来技術において推奨されるように、活動センサ及び計算機は周期的にもはや通信しないが、むしろ有限状態機械から受信される転移の指示、又は、少なくとも一つの活動センサカウンタの飽和により通信する。
【0092】
また本発明は、上記の実施態様に限られていないことに留意のこと。当業者に公知であるように、開示された説明に関して、上記の実施態様に作成される様々な修正が存在する。以下の請求項において、使用された用語は、請求項をこの記述に存在する実施態様に制限するものとして判断されるべきでないが、請求項がそれらの明確な記述により適用される意図を有し、開示された説明に一般的な知識を適用することによって、その予測が当業者の手の届く範囲であるすべての同等物を含むと判断されるべきである。

【特許請求の範囲】
【請求項1】
デジタル回路の機能記述を含むファイル(14)に基づくデジタル回路(52)シミュレータ(12)と、前記シミュレータ(12)に供給されたテストベンチ(26)を実行する時に前記デジタル回路から出力変数(30’)を予想する手段(28)と、イベントカウンタ(34’)であって、前記イベントは前記テストベンチ(26)を実行する時に前記シミュレータ(12)によって提供された制御信号を用いて検出されるイベントカウンタと、を含み、前記イベントカウンタからの出力データを用いて前記デジタル回路(52)の前記出力変数(30’)を計算するモデルを反復して最適化することにより、前記イベントカウンタ(34’)の一部を選択する手段(40、44)と、前記イベントカウンタの選択された部分及び前記最適化された計算モデルを登録する手段(40、44)と、をさらに含むことにおいて特徴付けられた、デジタル回路を設計するシステム(10)。
【請求項2】
前記デジタル回路の出力変数を予想する前記手段(28)が、前記テストベンチ(26)を実行する時に各々の瞬間で前記シミュレーションされたデジタル回路(52)によって消費された前記電力のプロファイル(30’)を提供するように設計された消費シミュレータを含む、請求項1記載のデジタル回路を設計するシステム。
【請求項3】
前記デジタル回路の機能記述を含むファイル(14)に基づくデジタル回路(52)の前記動作をシミュレーションする(100、102、104、106)ステップと、前記シミュレーションへの入力として供給されたテストベンチ(26)を実行する時に前記デジタル回路の出力変数(30’)を予想する(104)ステップと、前記テストベンチ(26)を実行する時に前記シミュレーションによって供給された制御信号を用いて検出されたイベントを計数(106)するステップと、を含み、イベントカウントデータ(34’)を用いて前記デジタル回路の前記出力変数を計算するモデルを反復して最適化することによって前記計数されたイベントの一部を選択する(110)ステップと、前記計数されたイベント及び前記最適化された計算モデルの前記選択された部分を登録する(122)ステップと、をさらに含む、デジタル回路を設計する方法。
【請求項4】
前記選択ステップ(110)の前に、前記予想された出力変数及び前記イベントカウンタ出力データが、共通の所定周期によりそれらの値のサンプルをとることによって同期される(108)、請求項3記載のデジタル回路を設計する方法。
【請求項5】
前記選択ステップ(110)の前に、前記計数されたイベントの一部が、所定の制限より少ないビットを有する信号を用いて計数された前記イベントのみを保つ、及び/又は、独立性が相互相関により測定されている互いに独立している信号を用いて計数された前記イベントのみを保つことによって事前選択される(108)、請求項3又は4記載のデジタル回路を設計する方法。
【請求項6】
前記選択ステップ(110)が段階的回帰方法により実行される、請求項3から5のいずれか一項に記載のデジタル回路を設計する方法。
【請求項7】
前記段階的回帰方法が直線回帰を含み、最適化される前記計算モデルがイベントカウント・データ(34’)及び回帰定数の線形の組合せである、請求項6記載のデジタル回路を設計する方法。
【請求項8】
前記段階的回帰方法が、各々のイベントの前記計数データ値(34’)と前記予想された出力変数値(30’)と間の相関を計算し、前記最も高い相関を有する前記計数されたイベントを選択することによって、第1の計数されたイベントを選択する第1のステップ(112)と、最小二乗法の最小化によって前記計算モデルへ選択された前記第1の計数されたイベントを一体化する第2のステップ(114)と、を含む、請求項6又は7記載のデジタル回路を設計する方法。
【請求項9】
前記第1の計数イベントを選択して一体化する前記第1及び第2のステップ(112、114)の後、前記段階的回帰方法は、少なくとも一回、次のステップ:まだ前記モデルに一体化されていない各々のイベントの前記計数データ値と、すでに前記モデルに一体化された計数イベントを取り消すことによって予想される前記出力変数値との間の部分的な相関を計算して、その部分的な相関に関連した重要度テストを最適化する前記計数イベントを選択することによって新規な計数イベントを選ぶ(118)ステップと、重要度テストが第1の所定の閾値を下回るタイプIの確率値を提供する場合、すでに前記モデルに一体化された他の計数イベントと前記新しく選択された計数イベントとを取り消すことによって、すでに前記モデルに一体化された計数イベントの前記部分的な相関を更新(124)し、その更新された部分的な相関重要度テストが第2の所定の閾値より大きい計数イベントをモデルから出力し、最小二乗法の最小化によって、前記計算モデルに前記新しく選択された計数イベントを一体化(126)し、この一体化が計算モデルの決定の調整されたR係数への更新をさらに含むステップと、前記ステップのループを出る(122)ステップであって、前記新しい選択された計数イベントの前記重要度テストが前記第1の閾値より大きい場合、最小二乗法の最小化によって得られた最後のモデルを最適のモデルとして保つ、又は、決定の前記調整されたR係数への更新がその値を減少させる場合、最小二乗法の最小化によって得られた最後から二番目のモデルを最適のモデルとして保つステップとのルーピングを含む、請求項8記載のデジタル回路を設計する方法。
【請求項10】
通信ネットワークからダウンロードされる、及び/又は、コンピュータ可読の媒体にセーブされる、及び/又は、プロセッサによって実行されるコンピュータプログラムであって、前記プログラムがコンピュータで実行される時に、請求項3から9のいずれか一項記載のデジタル回路を設計する方法の前記ステップを実行する指示を含むことにおいて特徴付けられる、コンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate