JP2009520306A - 並列マルチレート回路シミュレーション - Google Patents

並列マルチレート回路シミュレーション Download PDF

Info

Publication number
JP2009520306A
JP2009520306A JP2008547473A JP2008547473A JP2009520306A JP 2009520306 A JP2009520306 A JP 2009520306A JP 2008547473 A JP2008547473 A JP 2008547473A JP 2008547473 A JP2008547473 A JP 2008547473A JP 2009520306 A JP2009520306 A JP 2009520306A
Authority
JP
Japan
Prior art keywords
matrix
circuit
preconditioned
instructions
splitting
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.)
Granted
Application number
JP2008547473A
Other languages
English (en)
Other versions
JP4790816B2 (ja
Inventor
ヤン、バオリン
Original Assignee
ジェミニ デザイン テクノロジー、インコーポレーテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ジェミニ デザイン テクノロジー、インコーポレーテッド filed Critical ジェミニ デザイン テクノロジー、インコーポレーテッド
Publication of JP2009520306A publication Critical patent/JP2009520306A/ja
Application granted granted Critical
Publication of JP4790816B2 publication Critical patent/JP4790816B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)

Abstract

回路シミュレーションにおいて並列方程式を解くためのコンピュータ実装された方法を説明する。この方法は、回路ヤコビ行列を疎結合のパーティションに分割するステップと、電圧ベクトルと行列をパーティションにしたがってリオーダーするステップと、ヤコビ行列を二つの行列MとNにスプリットするステップとを含み、Mは並列処理に適した行列であり、Nは結合行列である。MとNは、M−1Jx=(I+M−1N)x=M−1rを形成するようにプレコンディションされ、ヤコビ行列Jは反復解法を用いて解かれる。
【選択図】図4

Description

電子設計自動化(EDA)では、集積回路設計者が自分の設計を探求し、検証するために利用することができるソフトウェアが開発されている。半導体産業がナノメートルの時代に入ったため、設計者はEDAツールを使って、製造される回路にナノメートルレベルの影響があるかどうかを調べることが必要になってきている。設計を検証しなかったとしたら、製造される集積回路は高い確率で機能不全に陥り、再設計を余儀なくされ、費用がかかる。
回路シミュレーションは回路設計が動作するかどうかを検証する最も正確な方法である。図1は、初期設計が実現されたときから回路を製造する際に行われる典型的な変換を例示するフローダイアグラム50である。ブロック52は初期回路設計を示す。この設計は、一連の接続されたデバイスエレメント54に分解される。当該設計における各デバイスエレメントは、半導体製造工場や製造者によって検証されてきた正確な解析的モデルでモデル化される。解析的なモデルで表されたデバイスエレメントを用いれば、波線で示すブロック55で示される回路シミュレータが、電圧値や電流値をある期間にわたってシミュレートすることができる。回路シミュレータ55は、データに対して回路シミュレーションの演算を行うようにプログラムされたコンピュータシステムを含む。回路シミュレーションにおいて、当該回路のすべてのノードの電圧値と電流値は、フローダイアグラム50のブロック56に表された微分代数方程式(DAE)の系(システム)を解くことにより得られる。
DAEは有限差分法を用いて離散化することができ、ニュートン−ラフソン法のような非線形反復法を用いて、反復処理で方程式を解く。各反復において、非線形方程式が以前に得られた解の周りで線形化され、ブロック58で示される線形化された方程式系が生成される。そして、この線形系を解く必要がある。
行列解法技術が多くの科学、工学の分野で広く用いられている。EDAにおいて、行列解法技術は、回路シミュレーションのような分野で線形方程式系を解く上で欠かすことができない。
回路方程式は次のような形を取る。
Figure 2009520306
ここでvは当該回路でシミュレートされるすべてのノードにおける電圧のベクトルである。Q(v)はこれらのノードにおける電荷である。i(v)はこれらのノードにおける電流である。uは当該回路の電源である。
上記の方程式を解く際、有限微分法を用いて最初に微分演算子を近似する。ここでは説明のため、後退オイラー法を説明するが、他の有限微分法が使われているならば、他の方法を同様に適用することができる。離散方程式系は次のような形になる。
Figure 2009520306
ここで時間ステップtは既知であると仮定し、時刻tm+1における解を求める。非線形離散方程式を解くためにニュートン−ラフソン反復法を用いることができる。反復処理において、初期の推定値vが与えられる。その後、解v、v、…のシーケンスが得られ、図2のグラフに示されるような非線形方程式の解に収束する。各反復において、非線形方程式は、以前の反復で得られた既知の解vの周りに線形化される。そして、次の線形方程式系を解いてΔvを得る。
Figure 2009520306
ここで
Figure 2009520306
Figure 2009520306
Figure 2009520306
Δvを求めた後、更新された解vn+1=v+Δvを求める。このプロセスは次の条件が満たされるまで続く。
Figure 2009520306
ここでtolはある小さな誤差許容値である。式4の条件が満たされると、解は図2に示すように収束したと考えられ、tm+1における解は次のようになる。
Figure 2009520306
従来のSpice回路シミュレーションにおいて、誤差チェックはすべてのノードに対して行われ、|Δv|は、ベクトルΔvすなわち全ノードにおける解の変化の中で、すべてのエントリの内の最大絶対値である。式4が満たされると、手続きは1タイムステップ進み、フローチャート50のブロック56に戻り、次の時間に対応する次の非線形方程式系を解く。このようにして、モデル化された回路において過渡的な変動をシミュレートすることができる。
各時刻において生成された電圧値を解析し、回路シミュレーションが当該回路の期待された演算と合致しているかどうかどうかを判定する。たとえば、電圧値は回路設計の論理的な解析と比較される。別の例では、電圧値と電流値は、回路設計の電源およびタイミングの分析を実行するために使うことができる。演算68において、シミュレーションが期待された演算に合致しないならば、設計が変更され、欠陥が正される。そして、手続きは新しい回路設計のもとで演算52に戻る。しかし、電圧が期待された演算と比べて遜色がないならば、回路設計はプロトタイプとして製造される。すなわち、製造回路70が生成される。
線形系を解くことの主要な部分は、回路ヤコブ行列を解くことであり、これは、LU分解ステップと従来の直接的アプローチにおける前向きおよび後ろ向き代入ステップとを含む。高速で正確な行列解法は、高速で正確な回路シミュレーションにおいてたいへん重要である。
行列解法技術は二つのカテゴリに分けることができる。一つのカテゴリは直接行列解法と呼ばれる。他方のカテゴリは反復行列解法と呼ばれる。
回路シミュレーションにおいて次の線形系を考える。
Figure 2009520306
ここでJは回路のヤコビ行列であり、rは残差ベクトルであり、Δvはノード電圧解の更新ベクトルである。
直接行列解法は、行列Jを最初にLU分解する
Figure 2009520306
ここでLは下三角行列であり、Uは上三角行列である。その後、次式を解き、線形系に対する解Δvを得る。
Figure 2009520306
かつ
Figure 2009520306
以下の説明において、便宜上、Δvを表すためにxを用いる。
Figure 2009520306
反復行列解法は、反復しながら解を得るか、解に近づこうとする。初期推定値xのもとで、反復法は次の処理で解xに近づく。
Figure 2009520306
ここでn≧0であり、Bは反復解法のためにプレコンディション(precondition)された行列である。反復解法が効率的であるためには、この処理は、相対的に小さい反復回数で許容できる正確さで解に近づくことができるものでなければならず、Bxの計算は高速でなければならない。Krylov部分空間反復法は十分な収束特性をもち、合理的な速さで回路解に近づくことができる。プレコンディションの目的は、反復処理を高速化するために、行列Bを恒等行列に近づけることである。
回路シミュレーションにおいて、線形系のサイズは非常に大きくなり、行列の要素のパターンが疎(スパース)になることがある。このため、標準的な回路シミュレータは、行列Aの疎(スパース)行列表現を採用する。行列の疎(スパース)表現では、非零である行列の要素だけを保存するのが一般的である。疎(スパース)行列の非零パターンはLU分解の効率化のために重要である。これは、オペレーションはLおよびUに非零のエントリを生成することがある一方、同じ場所のJのエントリはゼロであるからである。これらのエントリはフィル−イン(fill-in)と呼ばれる。フィルインの数を減らすため、線形系をリオーダー(reorder)することができる。リオーダーリングの処理は線形系においてベクトルxとbのパーミュテーション(入れ替え)である。
Figure 2009520306
ここでJはJの行と列をパーミュテーション/リオーダーリングしたものであり、r’はrの行パーミュテーションであり、x’はxの列パーミュテーションである。さらなる例示の便宜のために、下付文字および上付文字は今後の説明では省略する。リオーダーリングの目的は、行列のLU分解の過程で生成されるフィル−インの数を最小にすることであり、これによりシミュレーションが高速化する。
典型的な並列回路シミュレーションにおいて、このタイプのリオーダーリングは別の目的で実行される。回路行列を図3に示すいわゆるダブルボーダー(double-bordered)系にリオーダーしたいとする。
リオーダーされた行列JのLU分解を実行するにあたって、あるブロックオペレーションは並列に実行することができる。すなわち、行列ブロックA、A、…、Am−1のLU分解は並列に実行できる。並列計算のボトルネックは、最後のブロックのLU分解を実行することである。結合(カップリング)ブロック、すなわちCブロックやDブロックからの寄与があるため、最後のブロックはLU分解処理の過程で密になりうることに留意する。
Y.Saadらによって提案されたドメインベース・マルチレベル再帰ブロック不完全LU法(BILUTM)は我々の方法とは異なる。BILUTMは一般的な行列解法をとして提案された。その方法の一つのアプローチは、Krylov部分空間法をBILUTMのすべてのレベルで適用することであり、BILUTM法の出版物で報告されている。その手続きのl番目のレベルで、行列のブロック因数分解が次のように近似的に計算される(上付文字はレベル番号に対応する)。
Figure 2009520306
ここで
Figure 2009520306
回路シミュレーションにとって、上記のアプローチを取ると、トップ回路行列レベルでKrylov部分空間反復法を適用することになる。これは、特別な特徴をもつ回路シミュレーション行列の性質のゆえに非常に非効率的である。より具体的には、回路シミュレーション行列は、非常に大きいが、疎であるかもしれない。Krylov部分空間法をトップレベルで適用することは、Krylov部分空間ベクトルがトップレベル行列と同じサイズであることを意味する。これらのベクトルは大きなコンピュータメモリを消費し、計算が遅くなる。BILUMの別の修正した使い方は、BILUTMの特定レベル、すなわち特定の縮小(reduced)ブロックでKrylov部分空間法を適用することである。しかし、トップレベル行列を縮小ブロックに減らしたとしても、縮小ブロックは近似技術を適用しなければ、非常に密になることがある。
Saadらによるアプローチにおいて、不完全LU分解(ILU)は保存される一方、近似誤差は破棄される。これは、ILU分解をプレコンディション行列として用いるには良い。よって、各反復において、元の行列とベクトルの積、およびプレコンディション行列とベクトルの積を計算することが必要である。
上述の理由のため、直接・反復ハイブリッドアプローチが、並列計算を用いたときのLU分解によってもたらされるボトルネックの問題を解決するために必要である。特に回路シミュレータ55(図1)が、複数のプロセッサコアまたはプロセッサユニットをもつコンピュータシステムであり、ロジックに応答してコンピュータシステムに回路シミュレーションの機能を実行させるものである場合、新しいハイブリッドアプローチが必要である。このロジックはソフトウェア、ハードウェア、もしくはソフトウェアとハードウェアの組み合わせによって実装することができる。
大まかに言えば、本発明は、並列マルチレート回路シミュレータを提供し、直接法と反復法の両方の利点を組み合わせ、シミュレーション過程で並列性を増やすことで上記のニーズに応えるものである。
本発明は、プロセス、装置、システム、デバイス、方法を含め、数多くのやり方で実装することができることが理解されよう。本発明のいくつかの実施の形態を以下で説明する。
ある実施の形態では、回路シミュレーションにおいて並列方程式を解くためのコンピュータで実装された方法が記述される。この方法は、回路ヤコビ行列を疎結合のパーティションに分割し、このパーティションにしたがって電圧ベクトルと当該行列をリオーダーリングし、当該ヤコビ行列を二つの行列MとNに分ける。ここでMは並列処理に適した行列であり、Nは結合行列である。MとNはその後、M−1Jx=(I+M−1N)x=M−1rとなるようにプレコンディションされ、ヤコビ行列Jが反復解法を使って解かれる。
本発明の利点は、これから述べる詳細な説明において、図面を用いながら発明の原理を例示することによって明らかになる。
本発明は、これから述べる詳細な説明において、同じような構成要素には同様の符号を付した図面を参照することにより、容易に理解される。
これから述べる説明において、本発明を完全に理解するために、数多くの具体的な詳細が説明される。しかし、本発明はそのような具体的な詳細がなくても実施できることは当業者にとって明らかである。別の例では、周知の処理操作や実装の詳細については詳細には述べられていない。いたずらに発明をわかりにくくすることを避けるためである。
プロトタイプ回路の生成に先立ち、当該回路をモデル化するための公知の技術を用いて微分代数方程式(DAE)の系を生成してもよい。DAEを数値評価に適したものにするために離散化する。離散化の方法としていろいろな方法が知られており、DAEの系を離散化するためにいずれの方法を用いてもよい。DAEが非線形である場合、たとえば回路がトランジスタのような非線形の構成要素を用いているなどの場合、線形系になるように線形化し、ここで説明する並列行列法を用いて解くことができるようにしてもよい。線形系に対する解は、回路の各ノードにおいて、電圧、電流および/または電荷を与えるものであるか、電圧、電流および/または電荷に対する変化を与えるものであってもよい。最終的な解を解析することで、物理試験のためにプロトタイプを生成するのに先立って、モデル化された回路が期待通りに振る舞うかどうかを確かめることができる。
[パーティショニングおよびスプリッティング]
図4は、回路シミュレーションのために並列方程式を高速に解くための実施の形態に係る方法を提示するフローチャート100である。ここで説明する本アプローチは、節点解析、修正節点解析、分散エレメントを用いた方程式などを含む異なる定式化の回路方程式に適用することができる。この手続きは開始ブロック102で始まり、オペレーション104に進み、行列がグラフで表現される。最初、回路ヤコビ行列は疎結合ブロックに分割される。行列Jは、一般的な並列マルチレベルグラフ分割(パーティショニング)アルゴリズムを適用することができるようにグラフに変換される。この変換において、まず対称行列が以下のように得られる。
Figure 2009520306
ここでJ’はJの転置行列であり、1≦i,j≦Jsizeである。JsizeはJのサイズである。
は次のようにしてグラフに変換される。エッジが下三角または上三角部分の各エントリに対して生成される。行i、列jのエントリはグラフにおいてはi番目の頂点とj番目の頂点を結ぶエッジとして表される。各頂点は同じインデックスの行や列を表す。その後、並列グラフ分割アルゴリズムを適用して、グラフを負荷分散したコンポーネントに分割し、そのコンポーネントを分離するためにカットするのに必要なエッジの数を最小化する。適切な並列グラフ分割アルゴリズムが知られており、すぐに利用可能である。分割の後、すべての結合エントリはスプリットされ、グラフのエッジは、最後のブロックにリオーダーされるというよりはむしろ、第2の行列にカットされることになる。
このプロセスは図5および図6の例で説明される。図5において、Jexampleは行列の例であり、JSexampleはJexampleを対称行列に変換したものである。JSexampleは図6に示すようにグラフ150に変換することができる。図4に戻り、手続きはオペレーション106および107に続き、グラフ分割アルゴリズムがオペレーション104で生成されたグラフに適用され、オペレーション108に示すように負荷分散されたパーティションが生成される。図5の例で言えば、結果的に得られるグラフ150は図6に示される。グラフ150は二つのパーティション152と154に分割され、ただ一つのエッジ156だけがカットのために必要である。
次に、オペレーション110において、行列Jexampleは、対応するグラフパーティションにしたがって、図7に示されるようにリオーダーされる。この例では、第2パーティション(2,3)は第1パーティション(1,4)のノードの後、リオーダーされる。パーティショニング(分割)の後、行列はオペレーション112において二つのマトリックスにスプリットされる。説明の目的のため、スプリッティングを次のように標記する。
Figure 2009520306
ここでMは並列計算のために適した行列であり、Nは結合行列である。たとえば、行列をスプリットする方法として、図8Aおよび8Bに示すような二通りの方法がある。
オペレーション114において、線形系をプレコンディションし、反復法を適用して次のように行列Jを解いてもよい。
Figure 2009520306
ここでx≡Δvであり、Iは対角成分が1で非対角成分が0である恒等行列である。
プレコンディショニングの目的は、プレコンディションされた行列I+M−1Nをできる限り恒等行列に近づけることである。このようにして、反復法が近似解に収束するまでの反復ステップが少なくなる。従来のFastMOS回路シミュレータは、パーティショニングのヒューリスティクスをたくさん用いて、弱い結合(カップリング)すなわちMOSFETデバイスのゲートにおける容量結合を生成する。こういったヒューリスティクスは依然としてここでも有用である。しかし、FastMOS回路シミュレータで使われる従来の緩和タイプの方法よりもずっと先進的な反復法を適用することができる。ここで説明する先進的な反復法は強い結合を扱うこともできる。こういった反復法の収束特性は、行列Nに現れる強い結合に対しても依然として十分有効である。
並列計算の性能を改善するため、分割されリオーダーされた行列は、まず上非対角ブロックのエントリを見つけることでスプリットしてもよい。たとえば、行列がブロック分割の後、図9に示す構造をもつと仮定する。見つかった上非対角ブロックはC11、C21、C12およびC22である。これらは行列の二つの列、列8と列11に属している。図10Aおよび図10Bに示すように、列8と列11のエントリは対角エントリを除いてすべて、結合行列Nに移動することができる。行列のスプリットの後、直接行列解法において行列操作M−1Nを適用してもよい。M−1Nには二つだけ列があることに留意されたい。行列I+M−1Nは図11に示された形を取る。
図4に戻り、オペレーション112で行列をスプリッティングし、オペレーション114でプレコンディショニングした後、独立した部分系がオペレーション116によって次のように与えられ、解かれる。
Figure 2009520306
オペレーション116において、この系は結合系に縮小され、解かれる。系のサイズに依存して、あるいは、行列の特性解析を通して、系が直接解法によって効率的に解くことができるかどうかに依存して、オペレーション117に示されるように、オペレーション104から116は、再帰的にさらに部分系を縮小するために繰り返される。この再帰は図12および図15を参照して以下でさらに説明する。オペレーション118において、縮小された結合系の解が方程式15に後ろ向き代入され、当該手続きは完了ブロック120に示すように終了する。このように、後ろ向き代入を使って、すべての残りの解を得ることができる。結合インデックスの集合は次のように表記される。
Figure 2009520306
このアプローチは結合部分系のサイズが比較的小さいときに有効である。結合部分系のサイズが大きいときは効果が薄れる。結合部分系の行列は次のように密である。
Figure 2009520306
行列Sのサイズが大きいならば、その逆行列を求めるのは効率的ではない。
並列計算において、方程式18の行列Sがボトルネックとなり、並列行列解法のスケーラビリティをより多くのCPUコアあるいは多くの結合をもつ系に制限してしまう。理想的には、パーティションの数はCPUコアの数に比例し、パーティションが多いと、N行列により多くのエントリが生じる。
[直接・反復ハイブリッド法]
図12は、行列I+M−1Nを解くための直接・反復ハイブリッドあるいは組み合わせ法の手続きの例を示すフローチャート200である。この手続きは開始ブロック202で示すように始まり、オペレーション204に進み、M−1がU−1−1に置き換えられる。次に、オペレーション206において、U−1−1Nが次のように3つの部分にスプリットされる。
Figure 2009520306
最初の部分Eは、U−1−1Nの計算の後、比較的大きな値になる行列のエントリを取る。第2の部分(LU)−1と第3の部分U−1は計算過程で、比較的小さな値を取る。
は次式の計算過程で、形成される。
Figure 2009520306
は次式の計算過程で、形成される。
Figure 2009520306
とFを前向き消去L−1と後ろ向き代入U−1の過程でスプリットアウトする際、フィル−インエントリの相対的な大きさがチェックされる。もしそのエントリが元のベクトルにあるなら、それはFまたはFにスプリットアウトされることはない。その代わり、異なる大きさの許容値を用いて結合部分系の行や他の行のエントリを制御してもよい。
上記のアプローチはSaadらのアプローチとは異なる。このアプローチでは不完全なLU分解の残余は保たれるが、Saadのアプローチでは不完全なLU分解の残余は破棄される。それは「背景」の節で前に説明した通りである。
上記のようにU−1−1Nを3つの部分にスプリットすると、M−1は次を与える。
Figure 2009520306
この系には独立の結合部分系があることに留意すべきである。部分系の行および列のインデックスは結合インデックス集合Iに属する。行列I+Eの部分系への射影は次のように表記できる。
Figure 2009520306
オペレーション208において、この行列は、以下のように方程式22の部分系へのプレコンディショナー(preconditioner)として使われる。
Figure 2009520306
最後に、オペレーション210において、Krylov部分空間反復法を適用することができる。たとえば、一般最小残余(GMRES)法を用いてプレコンディションされた系を解くことができる。
ここで述べるKrylov部分空間ベクトルの長さは縮小された部分系のサイズのことであるが、Saadの方法ではKrylov部分空間ベクトルの長さは元の行列のサイズのことであり、それは「背景」の節で前に説明した通りである。
縮小された部分系を解くために直接解法を用いることは都合がよいことを留意すべきである。それは、縮小された系が非常に疎であるときに意味がある。こうすることにより、その方法は純粋な直接法になる。非常に疎な行列に対して、直接解法は反復解法よりも高速になりうる。ある実施の形態では、この柔軟性を今から述べる直接・反復ハイブリッド法に有効に組み入れている。
部分系に対する解が得られた後、部分系にその解を後ろ向き代入することを通して全体の系に対する解が得られ、この手続きは完了ブロック212で示すように終了する。
縮小された部分系(I+E)|を解くために上記の直接・反復ハイブリッド法を再帰的に適用してもよいことに留意する。各再帰ステップにおいて、縮小された部分系のサイズはさらに小さくなる。ある実施の形態では、縮小された部分系のサイズが予め定めた閾値よりも小さくなったとき、あるいは、部分系が行列特性解析を通じて直接解法にとって効率的であると判定されたとき、再帰は停止する。この時点で直接法は、最終的な小さな部分系に適用され、この手続きは完了ブロック212で示されるように終了する。たとえば、ある実施の形態では、直説法は、部分系の行列が100行以下になったときに適用される。別の実施の形態では、直説法は、部分系の行列のLU分解が生成するフィル−インの数が小さくなったときに適用される。
[最小頂点セパレータを用いた行列のリオーダーリング]
別の例示的な実施の形態では、回路行列が頂点セパレータの集合にしたがってリオーダーされ、より効率的な解法技術が適用される。頂点セパレータの集合は、グラフを二つの連結されていないコンポーネントすなわちサブグラフに分けるために、当該グラフから取り除くことができる頂点の集合であり、Sに接続するエッジを伴う。このグラフ分割アルゴリズムは頂点セパレータの最小集合を見つけることを試みる。たとえば、頂点セパレータの最小集合は図6のグラフ150の例では一つの頂点であり、図13に示すように頂点4である。頂点3を頂点セパレータとして選ぶこともできる。
頂点は最後にある頂点セパレータの最小集合を用いてリオーダーすることができる。図6に示すグラフ150の例では、頂点4は既に最後の頂点であるからリオーダーリングの必要はない。もし頂点3が頂点セパレータとして選ばれたとしたら、頂点3が最後の頂点になるように頂点をリオーダーする。頂点セパレータ(頂点4)は最後に順序付けられているため、行列Jexampleは図5に示した元の形を保つことができる。
行列Jexampleは、最後に順序付けられた頂点セパレータに対応する列をスプリットアウトする(分け出す)ことでスプリットすることができる。このような列をスプリットするためには、当該列の非対角エントリだけをスプリットアウトすればよい。スプリットアウトされた行列をNと表記し、残りのメインの行列をMと表記する。我々の例では、図14に示すようにJexample=M+Nとなる。
MがM=LUのようなLU分解をもつとする。下行列Lは、次のように回路シミュレーションにおいて線形系をプレコンディションするために使うことができる。
Figure 2009520306
図15は、線形化されプレコンディションされた回路方程式(U+L−1N)x=L−1rを解くためのフローチャート250を示す。手続きは開始ブロック252で示されるように始まり、オペレーション254に進み、L−1Nが次のように二つの部分にスプリットされる。
Figure 2009520306
第1の部分EはL−1Nの計算の後、相対的に大きな値になるエントリからなる。第2の部分L−1Fは相対的に小さいエントリからなる。このスプリッティングは、L−1Nの計算過程でエントリの値を比較することで形成される。回路シミュレーションにおいて解くべき線形系は次のようになる。
Figure 2009520306
次に、オペレーション256において、線形系は(U+E)でプレコンディションされ、次のプレコンディションされた系を形成するようになる。
Figure 2009520306
EとFは頂点セパレータに対応する最後の列においてだけ非ゼロの値をもつことに留意すべきである。したがって、行列U+Eは、頂点セパレータに対応する最後のブロックを除いて上三角形式である。この線形系において、頂点セパレータに対応する部分系は独立である。
最後に、オペレーション258において、GMRESのようなKrylov部分空間反復法を適用して部分系を解く。各反復において、次の行列−ベクトル積が計算される。
Figure 2009520306
ここで、|subsystemは、ベクトルの部分系への射影を示す。F・xを計算する際、x|subsystemだけが寄与する。なぜなら、Fの非ゼロの列だけが部分系に対応するものであるからである。このことはまた、部分系が独立である理由を説明している。行列Lの逆行列を求める際、分離されたパーティションに対応する対角ブロックの逆行列を並列に求めることができる。行列−ベクトル積である(U+E)−1・(L−1Fx)を計算する際、次の系が解かれる。
Figure 2009520306
ここで、L−1Fxは既に計算されたベクトルである。Uの対角は1を含み、頂点セパレータに対応するUの最後のブロックは1の対角成分だけをもつ。たとえば、行列が4つのパーティションをもつとする。この場合、U+Eは図16に示す構造をもつ。この系を解くために、頂点セパレータに対応する最後のブロックI+Eが最初に解かれる。この部分系は独立であることに留意する。
我々のKrylov部分空間ベクトルの長さは、縮小された部分系のサイズのことであるが、Saadの方法ではKrylov部分空間ベクトルの長さは、「背景」の節で説明したように、元の行列のサイズのことである。
縮小された部分系を解くために直接解法を用いることは都合がよいことを留意すべきである。それは、縮小された系が非常に疎であるときに意味がある。こうすることにより、その方法は純粋な直接法になる。非常に疎な行列に対して、直接解法は反復解法よりも高速になりうる。ここで述べる方法がこの柔軟性をもつことは有利であり、そのことは直接・反復ハイブリッド法のユニークな特徴である。
部分系xsubsystemに対する解が得られた後、後ろ向き代入を用いて、その系を縮小することができる。残りの系を解く際、個別のパーティションに対応するブロックは並列に解かれる。系に対する解は次のように得られる。
Figure 2009520306
図15を参照して上述した、直接・反復ハイブリッド法を含む行列解法技術は、部分行列I+Eの逆行列を求めるまたはこれを解くときに適用することができる。もし部分行列I+Eのサイズがまだ大きすぎるなら、部分行列が疎であることを保ち、その計算に並列性をさらに求められるように、この方法を再帰的に適用することができる。各再帰ステップにおいて、縮小された部分系のサイズはさらに小さくなる。縮小された部分系のサイズが予め定めた閾値よりも小さくなったとき、あるいは、部分系が行列特性解析を通じて直接解法にとって効率的であると判定されたとき、再帰は停止する。この時点で直接法は、最終的な小さな部分系に適用され、この手続きは完了ブロック260で示されるように終了する。たとえば、ある実施の形態では、直説法は、部分系の行列が100行以下になったときに適用される。別の実施の形態では、直説法は、部分系の行列のLU分解が生成するフィル−インの数が小さくなったときに適用される。
シミュレーション行列が巨大であり、依然として疎に群がっていることがありうるから、Krylov部分空間法が部分系レベルで適用される。ここで述べる方法において、列が結合(カップリング)に対応している行列ブロックNに、スプリッティング技術が適用され、行列ブロックNは元の線形系レベルになる。それに加えて、上述の方法がE(L−1Nの一部)の計算において列ベースになる。結果として、この実装は、共有メモリ型並列コンピュータ上で並列化するのが簡単である。
この方法の一つの利点は、Krylov部分空間法をサイズが巨大であるトップレベルの回路行列Jには適用しないことである。その代わりにKrylov部分空間法をサイズがずっと小さい結合部分系に適用する。しかし、可能な限り元の回路行列を疎に保つためにスプリッティングがL−1Nの計算に適用される。これは、トップレベルの回路線形系のサイズをもつKrylov部分空間ベクトルを記憶し、直交化する問題を解く。したがって、今述べているアプローチは巨大な回路行列を解くための直接法および反復法の両方の利点を活用することができる。
この数値的方法は、以下で述べる柔軟なデータ構造と相まって、行列解法が回路シミュレーションにおいて効率的な過渡シミュレーションを提供することを保証する。過渡シミュレーションでは、異なる非ゼロの値をもつ行列を何度も解く必要がある。本アプローチは行列スプリッティングを動的に扱う点で柔軟性を有する。以下述べるように、本アプローチはまた、静的、周期的、準周期的シミュレーションにとって好適である。
[スプリッティングのための動的なデータ構造]
行列E、FおよびFは非常に動的である。具体的には、シミュレーション過程のあらゆるステップで変わるかもしれない。効率的で柔軟なデータストレージを実現するために、ハッシュテーブルを用いてもよい。行列の列ベクトルの各エントリに対して、元の列ベクトルにおける行インデックス、コンパクトベクトル(非ゼロ)におけるインデックス、およびその値を格納してもよい。ある実施の形態では、たとえば、行列の各列を格納するためにC++のSTLライブラリのMapまたはVectorを用いる。
ハッシュテーブルはまた、全体系において部分系に属するインデックスを格納するために用いてもよい。Vectorは結合インデックス集合Iを格納するために使ってもよい。ハッシュテーブルを用いることの一つの利点は、全体系のサイズがどれだけ巨大であったとしても、格納する必要のあるインデックスの数は制限されることである。さらに、インデックスがこの集合に属するかどうかは線形時間で決定することができる。
別の実施の形態において、バイナリツリーを動的なデータ構造のために用いる。バイナリサーチツリーを用いることにより、インデックスは常に順序づけが保たれ、ツリーをある順序で容易に行き来することができるようになる。このデータ構造を用いることにより、ツリーに挿入することがlog(n)の時間で行える。ここでnはツリーのサイズである。nがそれほど大きくないなら、このCPU時間は受け入れ可能である。同様に、ツリーにおけるエントリやインデックスの場所もlog(n)の時間で見つけることができる。
こういった動的なデータ構造は、行列E、FおよびFを構築するのに役立つ。我々はこれらの行列の構築の効率性を保つことができる。
[並列マルチレートシミュレーション]
集積回路はその機能においてマルチレートの振る舞いをする。マルチレートの振る舞いをするのは、集積回路がオペレーションの過程で高周波と低周波の両方を取り扱うという事実による。
回路シミュレーションにおいて、高周波信号は解くにはより多くのタイムステップが必要であるが、低周波信号はより少ないタイムステップで解くことができる。さらに、デジタルライクな信号に対しては、エッジは解くためにより多くのタイムステップが必要であるが、フラットな領域は解くのにほとんどタイムステップを必要としない。従来のSpiceタイプの回路シミュレーションでは、その特性は利用することができない。なぜなら全体回路は分割されていないし、回路方程式を離散化するにあたり、グローバルタイムステップが適用されるからである。正確さを保証するためには、最小タイムステップをシミュレーションで適用しなければならない。シミュレーションがより多くのタイムステップを取れば取るほど、速度が遅くなる。
従来のSpiceタイプの回路シミュレーションを高速化するために、FastMos回路シミュレータは全体の回路を異なるパーティションに分割し、マルチレートの振る舞いを利用するために異なるパーティションに異なるタイムステップを割り当てる。あるパーティションにおける信号が高周波であるなら、シミュレーションにおいて小さなタイムステップを取る。別のパーティションにおける信号が低周波であるなら、シミュレーションにおいて大きなタイムステップを取る。このマルチレートシミュレーション法を実装する際、FastMOSシミュレータはイベント駆動型のスキームを採用する。イベント駆動型スキームはイベント伝搬にしたがって、解くべきパーティションすなわち部分回路を決定する。もしあるパーティションでイベントが起こるなら、そのパーティションは一つの反復または一つのタイムステップの間、シミュレートされる。
イベント駆動型スキームはシミュレートすべきパーティションをシミュレートするだけである。そのため、不必要な計算を省くことができ、従来のSpiceシミュレータに比べてかなりスピードアップを図ることできる。しかし、深刻な欠点はイベントフローがシリアルである、すなわち、あるイベントの発生が以前のイベントに依存することである。この分野における公知の試みは、波形緩和および楽観的スケジューリングである。これらの技術は一般的な回路シミュレーションに対して積極的過ぎて成功しない。
あるイベントのシミュレーションを並列化することは、関わる計算量がほんのわずかであるため、解決策とはならない。あるイベントをシミュレーションするための仕事量は基本的には、あるタイムステップの間、あるパーティションをシミュレーションする際に関わる仕事量である。一般的に、これらのパーティションはFastMOSシミュレーションではたいへん小さい。たとえば、一つのパーティションで二つのトランジスタがあるだけである。このような小さな量のシミュレーションの仕事を並列化しても、期待に沿うような並列効率性を達成することはできない。
ここで例示の目的で説明した並列マルチレートシミュレーションスキームにおいて、イベント駆動型スキームは使われていない。その代わり、すべてのアクティブなパーティションが一緒に解かれる。このアクティブなパーティションのグループは、各タイムステップにおいて各非線形反復過程で動的に成長することがある。
周期的に訂正ステップが実行される。この訂正ステップにおいて、複数のタイムステップが正確さを向上させて一緒に解かれる。上述の並列行列ソルバー(solver)を、多くのパーティションと数多くのステップを必要とする結合系を切り離す(decouple)ために使ってもよい。もし強引(brute-force)な直接法または反復法で系を解くなら、計算は非常に遅くなるか非効率的になる。シューティング−ニュートン(shooting-Newton)RFシミュレーションアルゴリズムにおいて使われるものに似た反復法は、あまりに非効率であろう。そのような強引な反復法において、対角および部分対角ブロックをプレコンディショナーとしてもつ線形系を解くためにKrylov部分空間法を用いるであろう。この場合、結合(カップリング)はプレコンディショニング解法において考慮されない。このように強引な方法は大きな回路をシミュレートするには遅く、不適当である。
[いろいろなタイプの回路シミュレーションにおけるアプリケーション]
過渡的な回路シミュレーションに加えて、並列行列ソルバーを静的な回路シミュレーション(DC回路シミュレーション、周期的あるいは準周期的な定常状態RFシミュレーションと呼ばれることもある)に適用することができる。DCシミュレーションのある実施の形態(疑似過渡DCシミュレーションと呼ばれる)において、電圧源と電流源を0値からDC値まで上昇させる。それから、シミュレーションは、DC解である定常状態に到達するまで続けられる。DCシミュレーションの別の実施の形態では、我々の方法を次の静的な回路方程式を解くために適用することができる。
Figure 2009520306
これは動的な部分がない方程式1である。
並列行列ソルバーはRF(radio frequency)回路シミュレーションに適用することもできる。有限差分法やシューティング−ニュートン法のようなRF回路シミュレーション方法は、いくつかのタイムインターバルにおいて周期的または準周期的解を求めるために解く。その目的のため、周期的または準周期的境界条件がない方程式1を解く。周期的定常状態を例に取ると、境界条件はv(t1)=v(t2)である。ここで[t1,t2]は周期的なタイムインターバルである。有限差分法またはシューティング−ニュートン法はこの境界条件を満たす解を求める。ここで、上述の行列ソルバーを線形化された線形系を解くために使ってもよい。
[コンピュータ実装]
上記の実施の形態を念頭において、本発明は、コンピュータシステムに記憶されたデータに関係するコンピュータ実装された様々なオペレーションを利用することができることが理解されよう。これらのオペレーションは物理的な量の物理的操作を要求するものである。通常、必ずしもそうとは限らないが、こういった量は、保存、転送、結合、比較、さもなければ操作が可能な電気的もしくは磁気的な信号の形を取る。さらに、実行される操作は生産、特定、決定、比較のような用語で参照されることがある。
ここで記述した本発明の一部を形成するオペレーションはいずれも有用なマシーンオペレーションである。本発明はまた、これらのオペレーションを実行するためのデバイスまたは装置に関する。装置は要求された目的のために特別に構成することができる。あるいは、装置は、コンピュータに記憶されたコンピュータプログラムによって選択的に活性化したり、構成したりすることができる汎用のコンピュータであってもよい。特に、ここで述べた教示内容に沿って書かれたコンピュータプログラムをもつ様々な汎用マシーンを用いることができる。あるいは、要求されたオペレーションを実行するためにより特化した装置を構成するとより便利である。
本発明はコンピュータ読み取り可能な媒体上のコンピュータ読み取り可能なコードとして具体化することができる。コンピュータ読み取り可能な媒体は、データを記憶する任意のデータストレージデバイスであり、コンピュータシステムによって読み取ることができる。コンピュータ読み取り可能な媒体はまた、コンピュータコードが具体化された電磁搬送波を含む。コンピュータ読み取り可能な媒体の例として、ハードドライブ、ネットワーク接続ストレージ(NAS)、リードオンリーメモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープ、その他のオプティカル/非オプティカルデータストレージデバイスがある。コンピュータ読み取り可能な媒体をネットワーク接続されたコンピュータシステム上に分散させ、コンピュータ読み取り可能なコードを分散方式で保存し、実行するようにもできる。
本発明の実施の形態は、単一のコンピュータで処理することができ、また、複数のコンピュータまたは相互接続されたコンピュータコンポーネントを用いて処理することができる。ここで使われるコンピュータとは、プロセッサ、メモリ、ストレージをもつスタンドアロンのコンピュータ、または、ネットワーク端末にコンピュータリソースを提供する分散コンピューティングシステムを含む。ある分散コンピューティングシステムでは、コンピュータシステムのユーザは、現実には多くのユーザ間で共有されているコンポーネント部分にアクセスしている。したがって、ユーザはネットワーク上で仮想コンピュータにアクセスすることができ、ユーザには、一人のユーザに対してカスタマイズされた専用の単一のコンピュータとして見える。
前述の発明は、明確に理解するために詳細に記述したが、添付の請求項の範囲内で変更や修正をすることができることは明らかである。したがって、本実施の形態は例示と考えるべきであり、限定的に捉えるべきものではない。本発明はここで説明した詳細な内容に限定されるものではなく、添付の請求項の範囲およびその均等の範囲で変更することができる。
回路設計から集積回路を生成する際に実行される典型的な変換とオペレーションを例示するフローダイアグラムである。 解のシーケンスがどのようにして収束するかを例示するグラフである。 ダブルボーダーシステムの一例を示す図である。 回路シミュレーションにおいて並列に方程式を高速に解く方法を提示するフローチャートである。 行列の例と行列の例から形成される対称行列を示す図である。 図5の対称行列から形成されるグラフである。 図6に表されたグラフの部分にしたがってリオーダーされた図5の行列の例を示す。 図8Aおよび図8Bは図7に示す行列をスプリットする方法の例を示す図である。 行列構造の一例を示す図である。 図10Aおよび図10Bは、図9に示す行列構造上で実行されたスプリッティングオペレーションの結果、得られる行列MとNを示す図である。 図10Aおよび図10Bに示した行列から生成された行列I+M−1Nを示す図である。 行列I+M−1Nを解くための直接・反復ハイブリッドあるいは組み合わせ法の手続き例を示すフローチャートである。 図6のグラフ例をグラフから取り除かれた頂点の集合(頂点4)とともに示す図である。 図13で特定された頂点セパレータにしたがって二つの行列にスプリットされた図5の行列の例を示す図である。 線形化されプレコンディションされた回路方程式(I+L−1N)x=L−1rを解くためのフローチャートを示す図である。 U+Eの行列構造を示す図である。

Claims (47)

  1. 集積回路のシミュレーションオペレーションのためのコンピュータ実装された方法であって、
    集積回路のオペレーションをモデル化する微分代数方程式(DAE)の系を生成するステップと、
    前記DAEの系を離散化するステップと、
    前記DAEが非線形である場合、離散化されたDAEを線形化して回路ヤコビ行列をもつ線形系を形成するステップと、
    線形化された回路ヤコビ行列ソルバーを用いて前記線形系を解くステップとを含み、
    前記線形系を解くステップは、
    前記回路ヤコビ行列を二つの行列MとNにスプリットするステップと、
    対角成分が1で非対角成分がゼロの恒等行列をIとして、前記二つの行列をプレコンディションしてI+M−1Nの形の行列をもつプレコンディションされた方程式を形成するステップと、
    直接・反復組み合わせ解法を用いて前記プレコンディションされた方程式におけるI+M−1Nに対する解を求めるステップとを含むことを特徴とする方法。
  2. 前記DAEの系を生成するステップは、集積回路に対する設計をDAEの系にマッピングするステップを含み、DAEの系は集積回路の複数のノードのそれぞれにおける電圧の変化を定義し、前記電圧の変化は定義可能な期間にわたって発生するものであることを特徴とする請求項1の方法。
  3. 前記DAEの系を解くステップはさらに、
    前記解を前記離散化された方程式に代入して複数のノードのそれぞれに対して電圧の変化を求めるステップと、
    前記DAEの有限差分離散化と非線形反復法を用いて電圧の変化を解くための前記線形系を求めるステップと、
    複数のノードのそれぞれに対して電圧の変化を現在の電圧ベクトルに足すことにより、各ノードの新しい電圧値を与える新しい電圧ベクトルを求めるステップと、
    次のタイムステップでDAEの新しい系を解くために1タイムステップ進め、続くタイムステップに対して当該解くステップを繰り返すことにより、集積回路の過渡的な振る舞いをモデル化するステップとを含むことを特徴とする請求項2の方法。
  4. Mは並列処理に適した行列であり、Nは結合行列であることを特徴とする請求項1の方法。
  5. 行列I+M−1Nを解くステップは、
    Uを上三角行列、Lを下三角行列として、M−1をU−1−1に置き換えることにより項U−1−1Nを形成するステップと、
    −1−1Nを第1、第2、第3の三つの部分にスプリットするステップとを含み、
    前記第1の部分は行列の相対的に大きい値であるエントリを含み、前記第2の部分と前記第3の部分は、計算過程で相対的に小さな値であるエントリを含むことを特徴とする請求項1の方法。
  6. 前記第1の部分は行列Eであり、前記第2の部分は行列(LU)−1であり、前記第3の部分は行列Fであり、U−1−1N=E+(LU)−1+Fを満たすことを特徴とする請求項5の方法。
  7. はL−1N=E+L−1の計算過程で形成され、
    は、U−1−1N=U−1(E+L−1)=E+U−1+U−1−1の計算過程で形成されることを特徴とする請求項6の方法。
  8. −1が部分系(I+E+U−1+U−1−1)x=U−1−1rにより与えられ、xは、回路ノードにおける以前の近似からの電圧の変化を含むベクトルを表すΔvとして定義され、
    Figure 2009520306
    であり、vはノードの電圧ベクトルであり、Q(v)はノードの電荷であり、i(v)はノードの電流であり、uは回路の電源を表すことを特徴とする請求項5の方法。
  9. 部分系行列(I+E)|を形成するために、前記部分系はプレコンディショナー行列I+Eを射影することによってプレコンディションされ、このプレコンディションは、((I+E)|−1(I+E+U−1+U−1−1)|x|=((I+E)|−1(U−1−1r)|を与えることを特徴とする請求項8の方法。
  10. 回路ヤコビ行列をM+Nにスプリットするステップ、M−1をU−1−1に置き換えるステップ、およびU−1−1Nを三つの部分にスプリットするステップは、再帰的に部分系行列(I+E)|に対して実行されることを特徴とする請求項8の方法。
  11. 最終的な部分系のサイズが所定の閾値より小さくなるか、前記部分系が行列特性解析を通じて直接解法にとって効率的であると判定されたとき、プレコンディションおよび再帰は停止し、最終的な部分系を解くために直接法が利用されることを特徴とする請求項10の方法。
  12. 回路ヤコビ行列は頂点セパレータの集合にしたがってリオーダーされることを特徴とする請求項1の方法。
  13. 回路ヤコビ行列は、頂点セパレータに対応する列をスプリットアウトすることにより、行列MとNにスプリットされることを特徴とする請求項12の方法。
  14. 行列Mは上行列Uと下行列Lに分解され、プレコンディションするステップは、前記下行列Lを用いて行列MとNをプレコンディションし、プレコンディションされた回路方程式を形成することを特徴とする請求項13の方法。
  15. プレコンディションされた回路方程式は、L−1JΔv=L−1(M+N)Δv=(U+L−1N)Δv=L−1rにより定義され、Δvは回路ノードにおける以前の近似からの電圧の変化を含むベクトルを表し、
    Figure 2009520306
    であり、vはノードの電圧ベクトルであり、Q(v)はノードの電荷であり、i(v)はノードの電流であり、uは回路の電源を表すことを特徴とする請求項14の方法。
  16. プレコンディションされた回路方程式(U+L−1N)Δv=L−1rは、L−1NをL−1N=E+L−1Fを満たすような第1の部分Eと第2の部分L−1Fにスプリットすることにより解かれ、第1の部分EはL−1Nの計算の後、相対的に大きいエントリを含み、第2の部分L−1Fは相対的に小さいエントリを含むことを特徴とする請求項15の方法。
  17. −1Nのスプリッティングは、エントリの値を比較することによりL−1Nの計算をする過程でなされることを特徴とする請求項16の方法。
  18. 前記第1の部分と前記第2の部分を最初の方程式に代入した結果、(U+E+L−1F)Δv=L−1rによって定義される解くべき線形系が得られることを特徴とする請求項15の方法。
  19. 前記解くべき線形系はプレコンディショナー(U+E)を用いてプレコンディションされ、(U+E)−1(U+E+L−1F)Δv=(I+(U+E)−1−1F)Δv=(U+E)−1−1rで定義されるプレコンディションされた線形系が形成されることを特徴とする請求項18の方法。
  20. 回路ヤコビ行列をリオーダーするステップ、回路ヤコビ行列を行列MとNにスプリットしてプレコンディションされた回路方程式を形成するステップ、プレコンディションされた回路方程式を形成するために下行列Lを利用するステップ、および、L−1Nを二つの部分にスプリットしプレコンディショナー(U+E)で系をプレコンディションすることにより、プレコンディションされた回路方程式を解くステップを含む一連のオペレーションを再帰的に実行するステップと、
    縮小された部分系のサイズが所定の閾値より小さくなるか、縮小された部分系が行列特性解析を通じて直接解法にとって効率的であると判定されたとき、再帰を停止するステップとをさらに含むことを特徴とする請求項19の方法。
  21. Krylov部分空間反復法はプレコンディションされた線形系の部分系に適用され、この部分系は頂点セパレータに対応することを特徴とする請求項19の方法。
  22. 前記直接・反復組み合わせ解法はKrylov部分空間反復法を含むことを特徴とする請求項1の方法。
  23. 集積回路のすべてのアクティブなパーティションのグループは一緒に解かれ、すべてのアクティブなパーティションのグループは、各タイムステップで各非線形の反復過程で動的に成長しうることを特徴とする請求項1の方法。
  24. DAEの系は集積回路の静的な回路オペレーションをモデル化することを特徴とする請求項1の方法。
  25. DAEの系は集積回路の周期的または準周期的な安定状態のオペレーションをモデル化することを特徴とする請求項1の方法。
  26. 疎結合のパーティションに分割された回路ヤコビ行列を用いて、集積回路のオペレーションをモデル化する微分代数方程式(DAE)の系を解くことをコンピュータシステムに実行させるプログラムインストラクションが記録されたマシーン読み取り可能な媒体であって、当該マシーン読み取り可能な媒体は、
    複数のノードのそれぞれにおける電圧の値を含む電圧ベクトルと前記回路ヤコビ行列を前記パーティションにしたがってリオーダーするためのインストラクションと、
    前記回路ヤコビ行列を二つの行列MとNにスプリットするためのインストラクションと、
    対角成分が1で非対角成分がゼロの恒等行列をIとして、前記二つの行列をプレコンディションしてI+M−1Nの形の行列をもつプレコンディションされた方程式を形成するためのインストラクションと、
    直接・反復組み合わせ解法を用いて前記プレコンディションされた方程式におけるI+M−1Nに対する解を求めるためのインストラクションとを含むことを特徴とするマシーン読み取り可能媒体。
  27. Mは並列処理に適した行列であり、Nは結合行列であることを特徴とする請求項26のマシーン読み取り可能媒体。
  28. 行列I+M−1Nを解くためのインストラクションは、
    Uを上三角行列、Lを下三角行列として、M−1をU−1−1に置き換えることにより項U−1−1Nを形成するためのインストラクションと、
    −1−1Nを第1、第2、第3の三つの部分にスプリットするためのインストラクションとを含み、
    前記第1の部分は行列の相対的に大きい値であるエントリを含み、前記第2の部分と前記第3の部分は、計算過程で相対的に小さな値であるエントリを含むことを特徴とする請求項26のマシーン読み取り可能媒体。
  29. 前記第1の部分は行列Eであり、前記第2の部分は行列(LU)−1であり、前記第3の部分は行列Fであり、U−1−1N=E+(LU)−1+Fを満たすことを特徴とする請求項28のマシーン読み取り可能媒体。
  30. はL−1N=E+L−1の計算過程で形成され、
    は、U−1−1N=U−1(E+L−1)=E+U−1+U−1−1の計算過程で形成されることを特徴とする請求項29のマシーン読み取り可能媒体。
  31. −1が部分系(I+E+U−1+U−1−1)x=U−1−1rにより与えられ、xは、回路ノードにおける以前の近似からの電圧の変化を含むベクトルを表すΔvとして定義され、
    Figure 2009520306
    であり、vはノードの電圧ベクトルであり、Q(v)はノードの電荷であり、i(v)はノードの電流であり、uは回路の電源を表すことを特徴とする請求項29のマシーン読み取り可能媒体。
  32. 部分系行列(I+E)|を形成するために、前記部分系はプレコンディショナー行列I+Eを射影することによってプレコンディションされ、このプレコンディションは、((I+E)|−1(I+E+U−1+U−1−1)|x|=((I+E)|−1(U−1−1r)|を与えることを特徴とする請求項31のマシーン読み取り可能媒体。
  33. 回路ヤコビ行列をM+Nにスプリットするためのインストラクション、M−1をU−1−1に置き換えるためのインストラクション、およびU−1−1Nを三つの部分にスプリットするためのインストラクションを、再帰的に部分系行列(I+E)|に対して実行するためのインストラクションをさらに含むことを特徴とする請求項31のマシーン読み取り可能媒体。
  34. 縮小された部分系のサイズ、あるいはその縮小された部分系が行列特性解析を通じて直接解法にとって効率的であるかどうかの判定にもとづいて、再帰を停止するかどうかを決定するためのインストラクションと、
    再帰の停止の後、直接法によって前記縮小された部分系を解くためのインストラクションとをさらに含むことを特徴とする請求項33のマシーン読み取り可能媒体。
  35. 回路ヤコビ行列は頂点セパレータの集合にしたがってリオーダーされることを特徴とする請求項26のマシーン読み取り可能媒体。
  36. 回路ヤコビ行列は、頂点セパレータに対応する列をスプリットアウトすることにより、行列MとNにスプリットされることを特徴とする請求項35のマシーン読み取り可能媒体。
  37. 行列Mは上行列Uと下行列Lに分解するためのインストラクションをさらに含み、プレコンディションするためのインストラクションは、前記下行列Lを用いて行列MとNをプレコンディションし、L−1JΔv=L−1(M+N)Δv=(U+L−1N)Δv=L−1rにより定義されるプレコンディションされた回路方程式を形成するためのインストラクションを含み、
    Δvは回路ノードにおける以前の近似からの電圧の変化を含むベクトルを表し、
    Figure 2009520306
    であり、vはノードの電圧ベクトルであり、Q(v)はノードの電荷であり、i(v)はノードの電流であり、uは回路の電源を表すことを特徴とする請求項36のマシーン読み取り可能媒体。
  38. プレコンディションされた回路方程式(U+L−1N)Δv=L−1rは、L−1NをL−1N=E+L−1Fを満たすような第1の部分Eと第2の部分L−1Fにスプリットすることにより解くためのインストラクションをさらに含み、第1の部分EはL−1Nの計算の後、相対的に大きいエントリを含み、第2の部分L−1Fは相対的に小さいエントリを含むことを特徴とする請求項37のマシーン読み取り可能媒体。
  39. −1Nのスプリッティングは、エントリの値を比較することによりL−1Nの計算をする過程でなされることを特徴とする請求項38のマシーン読み取り可能媒体。
  40. 前記第1の部分と前記第2の部分を最初の方程式に代入した結果、(U+E+L−1F)Δv=L−1rによって定義される解くべき線形系が得られることを特徴とする請求項38のマシーン読み取り可能媒体。
  41. 前記解くべき線形系を(U+E)を用いてプレコンディションし、(U+E)−1(U+E+L−1F)Δv=(I+(U+E)−1−1F)Δv=(U+E)−1−1rで定義されるプレコンディションされた線形系を形成するためのインストラクションをさらに含むことを特徴とする請求項40のマシーン読み取り可能媒体。
  42. 回路ヤコビ行列をリオーダーするためのインストラクション、回路ヤコビ行列を行列MとNにスプリットしてプレコンディションされた回路方程式を形成するためのインストラクション、プレコンディションされた回路方程式を形成するために下行列Lを利用するためのインストラクション、および、L−1Nを二つの部分にスプリットしプレコンディショナー(U+E)で系をプレコンディションすることにより、プレコンディションされた回路方程式を解くためのインストラクションを再帰的に実行するためのインストラクションステップと、
    縮小された部分系のサイズ、あるいはその縮小された部分系が行列特性解析を通じて直接解法にとって効率的であるかどうかの判定にもとづいて、再帰を停止するかどうかを決定するためのインストラクションと、
    再帰の停止の後、直接法によって前記縮小された部分系を解くためのインストラクションとをさらに含むことを特徴とする請求項41のマシーン読み取り可能媒体。
  43. Krylov部分空間反復法はプレコンディションされた線形系の部分系に適用され、この部分系は頂点セパレータに対応することを特徴とする請求項41のマシーン読み取り可能媒体。
  44. 前記直接・反復組み合わせ解法はKrylov部分空間反復法を含むことを特徴とする請求項26のマシーン読み取り可能媒体。
  45. 集積回路のすべてのアクティブなパーティションのグループは一緒に解かれ、すべてのアクティブなパーティションのグループは、各タイムステップで各非線形の反復過程で動的に成長しうることを特徴とする請求項26のマシーン読み取り可能媒体。
  46. DAEの系は集積回路の静的な回路オペレーションをモデル化することを特徴とする請求項26のマシーン読み取り可能媒体。
  47. DAEの系は集積回路の周期的または準周期的な安定状態のオペレーションをモデル化することを特徴とする請求項26のマシーン読み取り可能媒体。
JP2008547473A 2005-12-19 2006-12-18 並列マルチレート回路シミュレーション Active JP4790816B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US75221705P 2005-12-19 2005-12-19
US60/752,217 2005-12-19
US78937606P 2006-04-04 2006-04-04
US60/789,376 2006-04-04
PCT/US2006/048551 WO2007075757A2 (en) 2005-12-19 2006-12-18 Parallel multi-rate circuit simulation

Publications (2)

Publication Number Publication Date
JP2009520306A true JP2009520306A (ja) 2009-05-21
JP4790816B2 JP4790816B2 (ja) 2011-10-12

Family

ID=38218555

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008547473A Active JP4790816B2 (ja) 2005-12-19 2006-12-18 並列マルチレート回路シミュレーション

Country Status (5)

Country Link
US (1) US7783465B2 (ja)
EP (1) EP1964010B1 (ja)
JP (1) JP4790816B2 (ja)
TW (1) TWI340906B (ja)
WO (1) WO2007075757A2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8711146B1 (en) * 2006-11-29 2014-04-29 Carnegie Mellon University Method and apparatuses for solving weighted planar graphs
US20080208553A1 (en) * 2007-02-27 2008-08-28 Fastrack Design, Inc. Parallel circuit simulation techniques
US8091052B2 (en) * 2007-10-31 2012-01-03 Synopsys, Inc. Optimization of post-layout arrays of cells for accelerated transistor level simulation
US8543360B2 (en) 2009-06-30 2013-09-24 Omniz Design Automation Corporation Parallel simulation of general electrical and mixed-domain circuits
TWI476616B (zh) * 2010-02-12 2015-03-11 Synopsys Shanghai Co Ltd Estimation Method and Device of Initial Value for Simulation of DC Working Point
CN101937481B (zh) * 2010-08-27 2012-02-01 天津大学 基于自动微分技术的分布式发电系统暂态仿真方法
US8555229B2 (en) 2011-06-02 2013-10-08 International Business Machines Corporation Parallel solving of layout optimization
US20130226535A1 (en) * 2012-02-24 2013-08-29 Jeh-Fu Tuan Concurrent simulation system using graphic processing units (gpu) and method thereof
US9117043B1 (en) * 2012-06-14 2015-08-25 Xilinx, Inc. Net sensitivity ranges for detection of simulation events
US9135383B2 (en) * 2012-11-16 2015-09-15 Freescale Semiconductor, Inc. Table model circuit simulation acceleration using model caching
US9170836B2 (en) * 2013-01-09 2015-10-27 Nvidia Corporation System and method for re-factorizing a square matrix into lower and upper triangular matrices on a parallel processor
US20150178438A1 (en) * 2013-12-20 2015-06-25 Ertugrul Demircan Semiconductor manufacturing using design verification with markers
CN105205191B (zh) * 2014-06-12 2018-10-12 济南概伦电子科技有限公司 多速率并行电路仿真
JP6384331B2 (ja) * 2015-01-08 2018-09-05 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP6803173B2 (ja) * 2015-08-24 2020-12-23 エスエーエス アイピー,インコーポレーテッドSAS IP, Inc. 時間ドメイン分解過渡シミュレーションのためのプロセッサ実行システム及び方法
US10867008B2 (en) * 2017-09-08 2020-12-15 Nvidia Corporation Hierarchical Jacobi methods and systems implementing a dense symmetric eigenvalue solver
US11663383B2 (en) * 2018-06-01 2023-05-30 Icee Solutions Llc. Method and system for hierarchical circuit simulation using parallel processing
EP3803644A4 (en) 2018-06-01 2022-03-16 ICEE Solutions LLC METHOD AND SYSTEM FOR HIERARCHICAL CIRCUIT SIMULATION USING PARALLEL PROCESSING
CN112949232A (zh) * 2021-03-17 2021-06-11 梁文毅 一种基于分布式建模的电气仿真方法
CN117077607A (zh) * 2023-07-26 2023-11-17 南方科技大学 大规模线性电路仿真方法、系统、电路仿真器及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050076318A1 (en) * 2003-09-26 2005-04-07 Croix John F. Apparatus and methods for simulation of electronic circuitry

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPO904597A0 (en) * 1997-09-08 1997-10-02 Canon Information Systems Research Australia Pty Ltd Method for non-linear document conversion and printing
US6154716A (en) * 1998-07-29 2000-11-28 Lucent Technologies - Inc. System and method for simulating electronic circuits
US6530065B1 (en) * 2000-03-14 2003-03-04 Transim Technology Corporation Client-server simulator, such as an electrical circuit simulator provided by a web server over the internet
US6792475B1 (en) * 2000-06-23 2004-09-14 Microsoft Corporation System and method for facilitating the design of a website
US20030097246A1 (en) * 2001-11-16 2003-05-22 Tsutomu Hara Circuit simulation method
US7328195B2 (en) * 2001-11-21 2008-02-05 Ftl Systems, Inc. Semi-automatic generation of behavior models continuous value using iterative probing of a device or existing component model
US8069075B2 (en) * 2003-03-05 2011-11-29 Hewlett-Packard Development Company, L.P. Method and system for evaluating performance of a website using a customer segment agent to interact with the website according to a behavior model
US20050273298A1 (en) * 2003-05-22 2005-12-08 Xoomsys, Inc. Simulation of systems
US7441219B2 (en) * 2003-06-24 2008-10-21 National Semiconductor Corporation Method for creating, modifying, and simulating electrical circuits over the internet
US7401304B2 (en) * 2004-01-28 2008-07-15 Gradient Design Automation Inc. Method and apparatus for thermal modeling and analysis of semiconductor chip designs
US20060074843A1 (en) * 2004-09-30 2006-04-06 Pereira Luis C World wide web directory for providing live links
CN101432696A (zh) * 2004-10-20 2009-05-13 卡登斯设计系统公司 模型编译方法
JP4233513B2 (ja) * 2004-11-04 2009-03-04 シャープ株式会社 解析装置、解析プログラム、および解析プログラムを記録したコンピュータ読取可能な記録媒体
US8020122B2 (en) * 2005-06-07 2011-09-13 The Regents Of The University Of California Circuit splitting in analysis of circuits at transistor level
US7606693B2 (en) * 2005-09-12 2009-10-20 Cadence Design Systems, Inc. Circuit simulation with decoupled self-heating analysis
US7587691B2 (en) * 2005-11-29 2009-09-08 Synopsys, Inc. Method and apparatus for facilitating variation-aware parasitic extraction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050076318A1 (en) * 2003-09-26 2005-04-07 Croix John F. Apparatus and methods for simulation of electronic circuitry

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN7010003961, Jack Sifri, 大規模RFICのシミュレーション技術, 20021015, アジレント・テクノロジー株式会社 *
JPN7010003962, Jun Zhang, "On Preconditioning Schur Complement And Schur Complement Preconditioning", Electronic Transactions on Numerical Analysis, 2000, Vol. 10, pp. 115−130 *

Also Published As

Publication number Publication date
US7783465B2 (en) 2010-08-24
TWI340906B (en) 2011-04-21
EP1964010A2 (en) 2008-09-03
EP1964010B1 (en) 2017-07-19
WO2007075757A3 (en) 2008-08-14
US20070157135A1 (en) 2007-07-05
TW200736942A (en) 2007-10-01
WO2007075757A2 (en) 2007-07-05
EP1964010A4 (en) 2010-03-31
JP4790816B2 (ja) 2011-10-12

Similar Documents

Publication Publication Date Title
JP4790816B2 (ja) 並列マルチレート回路シミュレーション
US8515724B2 (en) Technology computer-aided design (TCAD)-based virtual fabrication
Huang et al. Arbitrary order Krylov deferred correction methods for differential algebraic equations
US7421671B2 (en) Graph pruning scheme for sensitivity analysis with partitions
WO2010039325A1 (en) Method for solving reservoir simulation matrix equation using parallel multi-level incomplete factorizations
Zhao et al. Power grid analysis with hierarchical support graphs
Gao et al. An implementation and evaluation of the AMLS method for sparse eigenvalue problems
US20080208553A1 (en) Parallel circuit simulation techniques
Carr et al. Preconditioning parametrized linear systems
CN115167813A (zh) 一种大型稀疏矩阵加速求解方法、系统及存储介质
US8832635B2 (en) Simulation of circuits with repetitive elements
Kwiatkowska et al. Dual-processor parallelisation of symbolic probabilistic model checking
Zecevic et al. A partitioning algorithm for the parallel solution of differential-algebraic equations by waveform relaxation
US8483999B2 (en) Method and system for simplifying models
Liu et al. pGRASS-Solver: A Graph Spectral Sparsification Based Parallel Iterative Solver for Large-Scale Power Grid Analysis
CN115587560A (zh) 用于分布式引擎的运行时和存储器高效的属性查询处理
Xia et al. Effective matrix-free preconditioning for the augmented immersed interface method
JP7466665B2 (ja) リーク電流に統計的ばらつきをもつダイナミックランダムアクセスメモリパストランジスタの設計
US20110257943A1 (en) Node-based transient acceleration method for simulating circuits with latency
Han et al. TinySPICE Plus: Scaling up statistical SPICE simulations on GPU leveraging shared-memory based sparse matrix solution techniques
Qin et al. RCLK-VJ network reduction with Hurwitz polynomial approximation
Radi et al. Amigos: Analytical model interface & general object-oriented solver
Wang et al. Convergence-boosted graph partitioning using maximum spanning trees for iterative solution of large linear circuits
US8819086B2 (en) Naming methodologies for a hierarchical system
Diosady A linear multigrid preconditioner for the solution of the Navier-Stokes equations using a discontinuous Galerkin discretization

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110302

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20110408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110408

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: 20110705

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110720

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4790816

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250