説明

故障マスキング係数を定めるための逆方向解析の改善

電子回路内の故障可観測性を定めるための方法及び構成が提示される。本方法では、各素子について、発生した故障が解析出力信号における異常を引き起こしうる期間が定められる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子回路における故障可観測性を定める方法、及び、本方法を実行する構成に関する。
【背景技術】
【0002】
電子回路、特に、例えば半導体部品が有するデジタル回路は、その動作を意図せず変更しうる外部からの影響に晒されている。作動電圧、温度、機械的負荷等のような、駆動パラメータが全て特定の限界値内にある場合には、ユーザは、正確で誤りがない回路の挙動が期待できる。1つ又は複数のパラメータがこの限界値の範囲外にある場合には、系統的な誤動作が観察される可能性がある。
【0003】
しかしながら、誤動作は、例えば、宇宙線、放射性崩壊生成物等のような、例えば電磁線又は例えば高エネルギー粒子のような外部からの作用によっても引き起こされる可能性がある。このような放射線の影響は、回路を使用する場所(地表上の場所、海抜の高さ、特別な放射線源までの近さ)と、回路自体の感度(Empfindlichkeit)と、に特に依存する。その際、回路部品の寸法が小さくなるにつれて、回路の感度が非常に増大することに注意されたい。
【0004】
発生する故障は、2つのグループ、即ち、回路の絶え間ない変更及び欠陥を引き起こす永久故障と、回路の状態又は挙動の一時的な変更を引き起こす一時故障と、に区分される。
【0005】
一時故障は更に2つのグループに分けられる。即ち、
シングル・イベント・トランジエント(SET:Single−Event−Transient):導線の電圧レベルにおける短時間の雑音パルス、
シングル・イベント・アプセット(SEU:Single−Event−Upset):記憶セル内の状態又は情報の反転又は変更)。
【0006】
特にマイクロプロセッサにおけるSEUの故障マスキングを扱った学術刊行物が多く存在する。ここでは、ACE(「Architectural Correct Execution」)ビットの概念が定義されている。ACEビットは、故障の際にシステム出力に作用する全ての記憶セルである。
【0007】
この他、プロセッサ内の命令経路に影響しえないビットは全て、「microarchitectural Un−ACE」ビットと呼ばれる。このビットは、停止状態又はアイドル状態において、推論的計算の際及び予測構造(予測子、Predictor)において発生しうる。ここで計算された値は利用されないことが多く、従って影響も及ぼさない(Un−ACE)。
【0008】
第3のグループとして、個々の命令の結果に対して作用するがシステム入力に対しては作用しない「architectural Un−ACE」ビットが定義される。このビットは、ノーオペレーション(NOP:No Operation)命令の場合、例えば先取り、述語レジスタ(Praedikat−Register)、オペランドの論理マスキング係数のような、処理能力(Performance)が上げられる命令の場合、及び、所謂「dynamically dead instructions」の場合に発生しうる。更に、例えば、同じアドレスへの2つの書き込みアクセスであって、その間に第1の値が読み出されない上記書き込みアクセスのような、「FDD:first−level dynamically dead instructions」と「TDD:transitively dynamically dead instructions」とに分けられ、この「TDD」は、FDD又はTDDのみにより利用される結果を生成する。
【0009】
先の記載については、Shubhendu S.Mukherjee、Christopher Weaver、Joel Emer、Steven K.Reinhardt、Todd Austin著の刊行物「A Systematic Methodology to Compute the Architectural Vulnerability Factors for a High−Performance Microprocessor」、IEEE、2003年を参照されたい。
【0010】
組合せデジタル回路は、その決定論的な挙動により卓越している。これにより、結果として、所与のデジタル論理関数及び所与の入力値によって、出力値が確実に決定されうる。出力が1つの(1ビット)の論理関数の1つ又は複数の入力信号に一時誤りが発生した場合には、入力信号及び論理関数に従って、誤りがある出力信号となる可能性がある。特定の誤りが、出力口の1つでの、予期される回路動作からの逸脱の原因となるかどうか、即ち、故障が見えるかどうかは、可観測性又は故障可観測性(Fehler−Beobachbarkeit)と呼ばれる。ここで、全ての故障が、誤りのある出力として見えないことに注意されたい。これは、マスキング又は故障マスキング(Fehler−Maskierung)と呼ばれる。
【0011】
特別な誤りについての、特別に組み合わされた入力信号の感度は、ブール差分を用いて決定されうる。関数入力についてのブール差分=1である場合に、この入力信号の変更は、出力信号での変更を引き起こす。この入力信号の変化が出力信号の変化を引き起こす場合は一般に、入力口から出力口への故障伝播経路(empfindlicher Pfad)について述べている。
【0012】
ブール関数
【0013】
【数1】

【0014】
ブール差分
【0015】
【数2】

【0016】
各入力信号についてのブール差分の結果と、特別な入力組合せの発生の時間的な割合と、個々の信号の誤りの確率と、の全てにより、故障確率又は故障マスキンク確率の計算が可能となる。多段ロジックの場合は、個々の段の結果を、相関を用いて計算する必要がある。
【0017】
これに関しては、Ming Zhang、Naresh R.Shanbhag著の「A Soft Error Rate Analysis(SERA) Methodology」、IEEE、2004年、及び、米国特許出願公開第2007/0226572号明細書を参照されたい。
【0018】
順序回路(同期式回路技術)については、時間挙動も同様に重要な働きをする。従って、比較的大きな各回路には、どの時点にも回路の機能のために重要とは限らない複数のノードが存在する。従って、誤りマスキング効果も時間の経過と共に観察することが出来る。回路の特性により、発生した故障の一部が出力口で見えるようになることが阻まれる。その際に、実際に発生した故障に対する見える故障の割合は、変動係数(Abweichungs−Faktor)(Derating Factor、ディレーティング係数)と呼ばれる。
【0019】
この一連のテーマにおいて、以下の概念が利用される。
タイミング・ディレーティング(TD:Timing Derating)
タイミング・ディレーティングは、或るレジスタ又はラッチから次のレジスタ又はラッチへの信号の移動時間によって、即ち、一段を通過する際に同期式回路設計において生じる効果である。
【0020】
論理ゲートと、2つの記憶素子(レジスタ又はラッチ)間の導線(論理経路)と、を通る信号の移動時間のために、この論理経路の始まり、即ちレジスタ又はラッチで発生する故障は、必ずしも常にサンプリング時点に適時に、当該経路の終わりまで達しえない。この場合、この故障は回路の次の段へと伝播されずに、マスクされる。
【0021】
同期式回路段内での信号の広まり又は伝播についての超過時間(クロック周期tClk−論理経路を通る信号の移動時間tDelay)は、スラック(Slack)と呼ばれる。論理経路の始まりの記憶素子上の全てのSEUであって、当該記憶素子のサンプリング時点の前に、tDelayよりも短く、論理経路の終わりで発生する上記SEUは、サンプリングされる信号の値に対して影響を及ぼさない。従って、スラックは、クロック周期に対するタイミング・ディレーティング係数として見なされる。
【0022】
ロジック・ディレーティング(LD:Logic Derating)
所謂ロジック・ディレーティングは、回路の全論理関数に基づく実際の誤りの数に対する、見える誤りの削減に相当する。ロジック・ディレーティングは、回路の適用のみならず、回路自体の構造にも依存する。レジスタの内容に誤りがあるがその状態がもはや引き続いて処理されない場合には常に、ロジック・ディレーティングのことを述べており、その際、プロセッサのクロックゲーティング(Clock Gating)又は分岐予測(Branch−Prediction)からの情報を利用することが可能である。ここでは、代替的に、「ソフトエラー感度係数」(Soft Error Sensitivity Factor)又は「脆弱性係数」(Vulnerability Factor)という名称も利用される。
【0023】
これに関しては、Hang T.Nguyen、Yoad Yagil、Nobert Seifert、Mike Reitsma著の刊行物「Chip−Level Soft Error Estimation Method」、IEEE、2005年を参照されたい。
【0024】
検討する全てのマスキング係数を1つの係数にまとめる場合には、構造的脆弱性係数(AVF:Architectural Vulnerability Factor)について述べている。その際、特定の部品の故障が回路出力に影響を及ぼす確率は、技術に依存した基本故障比率に基づき、AVFを乗算して計算される。
【0025】
ここでは、Shubhendu S.Mukherjee、Christopher Weaver、Joel Emer、Steven K.Reinhardt、Todd Austin著の刊行物「A Systematic Methodology to Compute the Architectural Vulnerability Factors for a High−Performance Microprocessor」、IEEE、2003年を参照されたい。
【0026】
解析方法の他に、回路シミュレーションを通じて、回路に故障を供給することにより、全マスキング係数を決定するという可能性がある。その際に、回路の全出力信号の推移が、信号刺激の固定集合のために格納される。これは、誤りが無い回路駆動のための基準として機能する。
【0027】
故障注入の際には、回路全体に、全シミュレーション期間に渡って確率論的に分布する誤った値が、回路内にもたらされる。故障箇所で信号の推移に1つの故障が供給された後に、シミュレーションが定期的に続行され、出力ベクトル、即ち、全出力信号の全体が、所定の期間観察される。当該期間内に、出力ベクトルは、目標値としての、誤りがない基準値と比較され、可能な差分が確認される。少なくとも1つ故障が見える場合には、このシミュレーション実行は、誤りがあるとして評価される。故障箇所と出力口での影響との連関関係が格納される。
【0028】
故障注入は、一連の作戦(Kampagne)全体において、即ち、様々な故障による複数のシミュレーション実行において実行する必要がある。このように得られた結果は、故障箇所ごとにまとめられる。故障箇所ごとに、供給された故障の数に対する、誤りがあるシミュレーション実行の数が検討される。この比率は、信号ごとの故障マスキング係数である。
【0029】
故障注入によるマスキング係数の決定は、非常に高い演算コストを必要とする。というのは、或るシミュレーションの際には、常に、或る特別な故障についての言明のみ為しうるからである。故障注入による結果の精度は、シミュレーション実行の数、即ち、注入された故障の数に依存する。故障の数が大きくなってようやく、高い統計的精度が実現される。
【0030】
米国特許出願公開第2005/0283950号明細書は、所謂「dynamically dead instructions」の追跡による、マイクロプロセッサ内のエラーの誤った検出を低減する方法を記載している。この方法では、所与の命令が、dynamically dead instructionsであるかどうかが検査される。この方法で、偽陽性(false positive)も低減することが出来る。
【発明の概要】
【0031】
しかしながら、回路の駆動中に発生する故障の他に、回路の製造誤差も検出される必要がある。回路の不良の検出は通常、製造工場での検査によって、場合によっては回路駆動中又は回路駆動開始時に、定められたテストパターンの適用により行われる。しかしながら、このテストパターン生成時には未だ、どの故障がテストパターンセットにより検出されるのか分からないことが多い。組合せ関数を有する集積回路内の臨界経路追跡(CPT:Critical Path Tracing)は、テストパターンセットのテスト網羅度を決定しうるために、既に数年来実行されている。CPTでは、ブール差分を用いて、一次出力に始まり一次入力へと向かう故障伝播経路が計算される。多くの学術刊行物が、本方法において、特に再収束する経路の影響にも考慮している。この経路は一般に、再収束グラフ(Rekonvergenz−Graph)の作成により提示され解析される。グラフの特別な構造及び特徴に考慮することにより、自己マスキンク及び多重経路シミュレーションの効果に考慮することが出来る。CPTは、結果として、ある回路状態についての、回路の全故障伝播経路を提供する。故障伝播経路とは、当該故障伝播経路内の全ての回路ノードが観察可能であること、即ち、異常な出力信号という形態により故障が見えるようになるであろうことを意味する。これにより結果的に、現在注目する回路状態の入力信号は、全故障伝播経路内の全回路ノードの、目下のデジタル信号レベルが逆になった(反転された)縮退故障のテストベクトルとなる(例えば、テストs−a―0について信号レベルが論理的1、テストs−a‐1について信号レベルが論理的0)。CPTはまた、組合せ回路のテスト網羅度の迅速で並行的な決定(フォルトグレーディング、Fault Grating)のために利用されうる。拡張により、CPTを順次回路のために利用することも可能であり、その際には、場合により検出可能な故障についての故障リストが順序素子に格納され、先へと伝播される。この故障リストが一次出力口に達して初めて、当該リストに含まれる故障が検出されうる。非故障伝播経路上で多くの故障リストが消去されないため、不必要な高い演算コストが発生する。
【0032】
この関連では、Lei Wu、D.M.H.Walker著の刊行物「A Fast Algorithm for Critical Path Tracing in VLSI Digital Circuits」、IEEE、2005年、及び、P.Menon、Y.Levendel、M.Abramovici著の刊行物「SCRIPT:A Critical Path Tracing Algorithm for Synchronous Sequential Circuits」、IEEE、1991年を参照されたい。
【課題を解決するための手段】
【0033】
先の記載を背景に、請求項1に記載の特徴を備えた方法と、請求項10に記載の特徴を備えた構成が提示される。実施形態が、従属請求項及び以下の記載から明らかとなろう。
【0034】
従って、電子回路における故障可観測性を定める方法が記載される。本方法では、各素子、特に各記憶素子について、発生した故障が、任意に選択された回路信号の集合における異常(Abweichung)を引き起こしうる期間が定められる。この任意に選択された回路信号の集合は、定めるべき故障可観測性係数についての基準集合であり、以下では解析出力信号の集合と呼ばれる。この集合は、任意の一次出力信号から構成されるが、完全に観察可能であると仮定される任意の内部信号からも構成されうる。
【0035】
提示される方法によって特に、例えば、電子回路、特にデジタル半導体回路内の記憶素子についての故障マスキング係数を厳密に定めることが可能である。注目する故障は例えば、シングル・イベント・アプセット(SEU)により発生する。半導体回路におけるマスキング効果を可能な限り厳密に把握するために、従来公知の全ての効果を同時に考慮する必要がある。各効果は、公知の方法により個別に把握することが可能である。しかしながら、これら結果の全てを1つにまとめた際に故障が発生する。というのは、この結果は完全には互いに独立していないからである。さらに、FDD又はTDDのような複雑なマスキング効果を考慮することが出来ず、又は、当該マスキング効果を考慮することが非常に難しい可能性がある。これに対して、従来公知の方法は、適用においても純粋にCPUレジスタに限定され、従って、同期式半導体回路については一般に何も言明することが出来ない。
【0036】
さらに、本方法は、所与のテストパターンセットについて、検査可能な故障の集合(縮退故障モデル)を定めるために利用することが出来る。
【0037】
代替的又は補足的に、テストパターンの故障検出率を定めることが可能である。
【0038】
提示される方法は、簡単なやり方で、可能な限り多くの公知のマスキング効果を考慮し、本方法の実施の際には特別な処理無しで済ませる。FDD効果及びTDD効果を考慮するという可能性が提供される。モンテカルロシミュレーション(Monte−Carlo−Simulation)又は故障注入によるマスキング係数の決定に比べて、演算コストが大幅に削減される。さらに、本方法は決定論的に機能し、1つ又は複数の記憶素子(例えば、CPUパイプライン段)を超えたマスキング係数の決定のために相関が利用されない。解析の結果は、単一故障モデルの適用の際にのみ有効であることに注意されたい。即ち、回路内では常に故障が一度に1つしか発生せず、又は、発生する故障は機能的に互いに独立していると仮定される。
【0039】
本方法の実施は基本的に2つのステップに分けられ、その際、第1のステップは、第2のステップを準備する役目を果たす。回路の挙動が既に分かっている場合、即ち、任意のソースからの値の推移が既に存在する場合には、本方法の第1のステップを飛ばすことが出来る。
【0040】
第1のステップでは、シミュレーションモデル及び回路シミュレータによって、電子回路の挙動がシミュレートされる。シミュレーションモデルは、本物のハードウェアに比較して、記憶素子及びその論理結合に関して可能な限り類似した構造を有するべきである。シミュレーションステップでは、個々のゲートの時間的な遅延動作をシミュレーションする必要はなく、ゲート遅延の影響は、精度を落とすことなく、解析段階において再び考慮することが可能である。通常では、挙動モデルを利用することは出来ない。さもなければ、本方法の結果が、信頼に値する説得力を有さないからである。回路のデジタル動作を正確に複写すると共に回路の物理的実装に非常に近いため、特にレジスタ転送レベルのモデルが適している。
【0041】
回路の一次入力は、例えば、テストパターンセット(テストベンチ、Testbench)によって活性化される。シミュレーションの実行は、従来の回路シミュレーションと異ならない。シミュレーションの間、典型的に、値の推移(時点及び値)と、全ての内部信号の波形と、が記録されるため、その推移を再び呼び出すことが出来る。シミュレーションステップにおける遅延時間の省略により、通常では波形データがより小さくなり、後続ステップの実行時間が削減される。
【0042】
本方法の第2の部分において、各記憶素子について、SEUが解析出力の異常を引き起こしうる期間、即ち、回路の解析出力口で故障が見える期間が決定される。
【0043】
回路の表現、例えば有向グラフ又はシミュレーションモデルが、回路の構造及び機能を描写するために利用される。この表現での回路状態は、即ちノード(信号)及び記憶素子のことであるが、上記回路状態は、格納された波形を用いて、時間的に逆の順序に作成される。波形の記録の終わりから始まり当該記録の始まりへと、値が表現の中に入力される。
【0044】
回路の表現の状態の変更が起こる各時点について、当該変更により起動されるプロセスを決定する必要がある。記憶素子にとってこのことは、格納された値及び/又は出力信号の更新又は変更を記憶素子の機能に従って引き起こしうる入力信号が、印加されているかを検査する必要があることを意味する。しかしながらここでは、例えばレジスタのようなエッジ制御される構成モジュールでは、シミュレーションが逆方向に行われる場合に、センシティブなエッジ方向の反転が起こることに言及する必要がある。
【0045】
記憶素子でこのような更新又は変更が起こる場合には常に、書き込みイベント(Write−Event)について述べている。書き込みイベントの際には、以下でシンクと呼ばれる記憶素子の全入力信号が読み出される。書き込みイベントが起こる時点、即ち、書き込みイベント時点は、更なる評価のために重要である。
【0046】
シミュレーションステップで遅延時間が考慮されなかった場合にはここで、書き込みイベントの時点が、追加的に起動信号の遅延時間を用いて、本発明での意味において正確な解析結果を獲得するために修正される。回路の表現に含まれる構造を利用して、書き込みイベントを有する記憶素子の全入力信号を、そのソースまで遡ることが可能である。ソースとして、全ての記憶素子及び回路の一次信号が見なされるが、純粋に組合せにより機能する機能(論理ゲート)は、ソースとして見なされない。
【0047】
論理ゲートによって、ブール代数の規則を用いて、現在の状態を利用して、ソースからシンクへの故障伝播経路を決定することが出来る。しかしながらこの評価は、正に書き込みイベントが発生した記憶素子から開始して行われる。各記憶素子又はその格納された情報は、故障伝播経路の始まりに存在する場合には、センシティブ(empfindlich)であるとして見なされる。故障伝播経路の始まりに存在しない記憶素子及び格納された情報は、入力信号の値又はシンクに影響を及ぼさないため、センシティブであるとして見なされない。
【0048】
各記憶素子は、変数、又は、以下で関連性マーク表示(Relevanz−Markierung)と呼ばれるマーク表示を有する。このマーク表示は、目下格納されている情報が、故障の場合に、解析出力口又は解析出力信号内の見える誤りを引き起こす可能性があるか(正(positiv)マーク表示)、又は、誤りが観察されないのか(負の(negativ)マーク表示)について表わす。
【0049】
或る記憶素子で書き込みイベントが起こり、この記憶素子が正の関連性マーク表示を有する場合には、故障伝播回路の始まりにある全記憶素子で、読み込みイベントが生成される。このことは、上記記憶素子に格納された値が後続の回路部分で利用されたということを意味する。或る記憶素子において読み出しイベントが生成される場合には、この記憶素子は、正の関連性マーク表示を有する。さらに、この記憶素子に、読み出しイベントの時点が格納される。この記憶素子に既に正のマーク表示が存在する場合には、このマーク表示はそのまま存在する。関連性マーク表示は書き込みイベントの際に消去され、即ち、負の関連性マーク表示が設定される。
【0050】
或る記憶素子で書き込みイベントが発生し、この記憶素子が正の関連性マーク表示を有する場合には、これにより、少なくとも1つの読み出しイベントも対応する時点に発生しているのだが、読み出しイベント時点及び書き込みイベント時点が、センシティブな期間を決定し、このセンシティブな期間内に、記憶素子は、故障の場合に、解析出力信号に対して見える影響を及ぼす可能性がある情報を含む。センシティブな全期間を合算することにより、この記憶素子について、センシティブな全時間を決定することが出来る。入力口でシミュレートされる全期間に対するこの総和は、ディレーティング係数として解釈することが出来る。
【0051】
本方法は、以前に記載したように、非常に小さな拡張によって、フォルトグレーディングを実行するためにも利用することが出来る。臨界経路の追跡の際には、検査可能な故障が簡単に決定されうる。一次出力、又は、正の関連性マーク表示を有するレジスタから始まる臨界経路上の全信号が、解析出力信号によっても観察可能である。従って、各解析出力信号が、臨界経路上で、現在の論理レベルが反転した縮退故障(s−a−)を検査する。フォルトグレーティングのための既に公知の方法との違いは、逆方向シミュレーションの適用にある。これにより、或る経路が観察可能ではないとして判明した場合に、時間的に順方向に故障リストを伝播させ又は場合により破棄する必要がない。逆方向シミュレーションの場合には、検査可能な故障が直接的に読み出され、これにより、必要な演算コストが削減される。
【0052】
追加的にタイミング・ディレーティングが考慮される場合には、読み出しイベント発生時に格納される時点が修正される必要がある。格納された時点は、本方法の実現に従って、該当する故障伝播経路上の信号の遅延時間の分だけ、値が増分又は減分される。
【0053】
回路の全記憶素子に対して、シミュレーション時間の終了(解析の開始)について関連性(Relevanz)の初期状態が設定される。2つの可能なバリエーションは以下のとおりである。
【0054】
バリエーション1では、全記憶素子が関連し(relevant)、これにより、より遅い時点での回路の後の駆動についての不確実性が考慮される(悲観的なアプローチ)。バリエーション2では、回路の解析出力のみ関連する。解析出力に続いて回路がもはや利用されない場合、又は、独立したタスクが処理されている場合には、このことは当然のことである(楽観的なアプローチ)。2つのケースの任意の組合せも同様に構想されうる。
【0055】
回路シミュレーションは基本的に、順方向及び/又は逆方向に実行することが可能である。他のソースからの信号の推移も利用することが出来る。
【0056】
順方向の回路シミュレーションとは、通常の時間的順序の入力刺激を用いた、回路挙動が修正されない従来のシミュレーションと理解される。このシミュレーションでは、論理関数が公知である場合には、2つの任意の記憶素子間で、格納された個々の情報又は回路入力の、マスキング又は感度が決定されうる。記憶素子を超えたマスキング又は感度を決定することは困難である。ここでは、順次動作が重要な役目を果たすからである。特に、或る段の、先行する段へのマスキング効果は、データ依存性のために決定が困難である。回路状態は、決定論的に時間的に順方向に伝えられる。
【0057】
逆方向の回路シミュレーションの場合、回路は、従来のやり方では駆動されない。その際に回路状態は、逆の時間的順序で遷移する。しかしながら、回路の所定の関数に基づき、入力刺激のみによって回路関数を逆方向に進行させたり、又は、或る回路状態から出発して、先行する可能な回路状態を決定したりすることは一般に可能ではない。というのは、可能な回路状態の数が、時間ステップごとに爆発的に増大するからである。従って、逆方向シミュレーションの際には、全内部ノード(記憶素子及びゲート出力)の値は、回路自身(シミュレーション)により決定されるのではなく外部から供給される。
【0058】
関連性マーク表示は、回路内ではデータフローと逆の方向に伝えられる。関連性マーク表示は、逆方向シミュレーションの開始時に、固定の規則に従って生成される。当該規則によれば、解析出力口及び解析出力信号が、唯一のソースである。
【0059】
2つの方法を組み合わせることにより、各個別の方法の弱点が補われる。順方向シミュレーションにおいては、推移的なマスキング効果を考慮することが困難であり又は当該効果を考慮することが全く可能ではない。この推移的マスキング効果について、回路状態が簡単に決定されうる。逆方向シミュレーションの場合は、マスキング効果を容易に定めることが出来るが、回路状態の決定は困難である。時間ステップごとに全ての内部回路状態が格納され、第2のシミュレーション実行時に逆の順序で外部から回路に供給される場合に、所与のテストパターンセットについて、マスキング効果が簡単に完全に決定される。
【0060】
本方法は、デジタル回路内のあらゆる形態のメモリに適用することが可能であり、フリップフロップ(FlipFlop)、ラッチ(Latch)、SRAMブロック、DRAMが検討されうる。違いは、入力信号を監視し書き込みイベントを生成する機能においてのみ生じる。本方法では、簡単なやり方で、異なる数のマスキング効果を考慮することが可能である。解析の際に全ての効果を考慮することは必ずしも必要ではない。これにより、他の方法により決定された1つ又は複数のマスキング効果についての結果を後から結果全体に取り込むことが可能であろうが、その際、1つの効果について何度も考慮されることはない。これに伴い、得られる結果の精度が失われるが、部品固有の値(遅延時間、セットアップ時間、保持時間、Clock−To−Q時間)を省略することが出来る。すなわち、本方法は、必ずしも全てのマスキング効果を考慮する必要はない。
【0061】
本方法自体は複数の形態で実現されうる。回路シミュレータとしては、原則的にデジタル回路のための各シミュレータが利用されうる。解析関数は、独立した解として、従来のプログラム言語により実装されうる。代替的に、ハードウェア記述言語へのプログラムインタフェース(VHDL→インタフェースVHPI、ヴェリログ(Verilog)→インタフェースPLI)、又は、普通のシミュレータへのインタフェース(ModelSim SE→インタフェース FLI)が提供される。
【0062】
本発明の更なる別の利点及び構成は、明細書の記載、及び、添付の図面から明らかとなろう。
【0063】
以前に挙げた特徴及び以下で解説される特徴は、各示される組合せにおいてのみならず、他の組合せにおいて、又は、単独でも、本発明の範囲を逸脱することなく利用することが出来る。
【図面の簡単な説明】
【0064】
【図1】故障伝播経路を示す。
【図2】スラックを明確にするための信号推移を示す。
【図3】同期式回路における本方法の利用を示す。
【図4】順方向及び逆方向のシミュレーションを示す。
【図5】時間的に重み付けされた和を示す。
【発明を実施するための形態】
【0065】
本発明が、図面の実施形態を用いて概略的に示され、図を参照しながら詳細に記載される。
【0066】
図1には、入力から出力への故障伝播経路が示されており、この故障伝播経路内では、入力信号の変更により、出力信号の変更が引き起こされる。
【0067】
図には、故障伝播経路がどのように、記憶素子の一例としてのレジスタから始まっているのかが概略的に示される。レジスタ101〜106の出力信号の割り当ては、以下で仮定される故障伝播経路(実線の矢印)を生じさせるために適切であると仮定する。論理ブロック201〜207の機能は詳細には記載しない。
【0068】
レジスタ107から始まって、論理ゲート207、206、203を介してレジスタ104へと達する故障伝播経路と、論理ゲート207、206、204を介してレジスタ105及び106へと達する故障伝播経路と、が生じる。レジスタ101には、どの故障伝播経路も通じていない。レジスタ102及び103は特別な構造をしている。両レジスタは、再収束する(rekonvergent)経路の始まりである。2つの想定される状況が示されている。205から201又は202を介して102へと達する2つの経路(点線)は、多重経路活性化(Mehrfach−Pfad−Stimulation)の可能性を示している。102で故障が発生した場合、この故障は、再収束構造のために、205での多重故障に繋がる可能性がある。205の各個々の入力がセンシティブであるとして評価されないにも関わらず、多重故障の際には、当該故障が場合によっては207へと更に伝播する可能性がある。
【0069】
207からゲート202、203、205、206を介する2つの経路(破線)は、故障自己マスキング(Fehler−Selbst−Maskierung)の可能性を示している。103で故障が発生した場合には、この故障は、示される2つの経路を介して207へと伝播する可能性がある。207のセンシティブな入力口に故障が存在するにも拘わらず、この故障は、誤りがある第2の入力信号との関連で、出力信号の変更を引き起こさない。故障自体がマスクされる。
【0070】
検査可能な故障の集合を決定しうるために、ここで、或るレジスタから始めて故障伝播経路を追跡する際に、正の関連性マーク表示(Relevanz−Markierung)を用いて、解析時の追加的機能を実行する必要がある。この故障伝播経路の構成要素である各信号のレベルが読み出される必要がある。この注目する信号は故障伝播経路の構成要素であり組合せ経路の末端のレジスタが正の関連性マーク表示を有するため、当該信号の現在の論理レベルは、一次(primary)出力口で観察可能である。従って、故障伝播経路上の信号ごとに、現在の信号レベルの反転に相当する誤った信号レベルを取る縮退故障を検査することが可能である。
【0071】
検査可能な故障が未だ検出されない場合は、大局的な故障リストのエントリが追加される。
【0072】
図2には、信号の推移が示されている。クロック周期との関係において、スラックをタイミング・ディレーティング係数(Timing Derating Faktor)として見なしうることが、この信号の推移により明らかになる。
【0073】
必ずしも同じ信号により起動されない2つの記憶素子又はレジスタ400及び402が示されている。このケースでは、共通のクロック信号CLK404が利用される。第1のレジスタ400の出力口の解析出力信号の推移S1 406と、遅延素子410の後の解析出力信号の推移S2 408と、第2のレジスタ402の出力口の解析出力信号の推移S3 412と、が示される。
【0074】
一般に、2つの素子の、互いに関連するトリガ時点間の時間的差分(tDiff)が利用される。2つの素子間の信号の移動時間が、tDiffと共に、残りの時間を決定し、この残りの時間内に、先行する素子で故障が、回路の更なる別の部品へと伝播しうるように発生すべきである。この残りの時間はスラックと呼ばれる。スラックとtDiffとの比率が、タイミング・ディレーティング係数として解釈されうる。
【0075】
マスクウィンドウ414が斜線で示されている。マスクウィンドウの外で発生する故障が出力口で検出される。
【0076】
図3には、同期式回路での本方法の適用が例示される。ここでは、ブロック200〜204の機能は詳細に定義されない。しかしながら、各機能ブロックの入力値の割り当てが行われ、この割り当ての結果、例示的に仮定される故障伝播回路(太い実線)が存在するものと仮定する。
【0077】
この時点で関連する(relevant)と見なされるレジスタ108及び109の回路出力口から出発して、先行する段のレジスタの関連性(Relevanz)が推測されうる。レジスタ108からは、論理素子203を通って(接続310及び315を介して)レジスタ104へと達する経路と、論理素子203を通って(接続311及び315を介して)レジスタ105へと達する経路と、が存在する。レジスタ109からは、論理素子204を通って(接続312及び316を介して)レジスタ106へと達する経路と、論理素子204を通って(接続314及び316を介して)レジスタ107へと達する経路と、が存在する。
【0078】
時点tClk*(n−1)に、レジスタ104、105、106、107が、出力レジスタ108及び109への故障伝播経路を生じさせうる値を格納したと仮定する。論理素子204の論理関数と、回路状態と、に基づき、レジスタ106からレジスタ109への故障伝播経路は生じない。また、レジスタ106の値は回路の出力に影響を及ぼさない。レジスタ105からは2つの故障伝播経路が出ている。従って、他のレジスタよりも感度が高くない。レジスタを関連するとしてマーク付けするためには、故障伝播経路が始まっていることで十分である。
【0079】
レジスタ100〜103から出発して、論理素子200〜202を通りレジスタ104〜107へと達する経路300〜309が存在する。むしろ、時点ttClk*(n−2)に、レジスタ100〜103が、レジスタ104、105、107への故障伝播経路を生じさせる値を格納したと仮定する。レジスタ102から305を介して、論理素子202を通って309を介して、レジスタ107へと達する故障伝播経路が発生せず、かつ、レジスタ102から304を介して、論理素子201を通って308を介して、レジスタ106へと達する経路がセンシティブ(sensitiv)であるが、レジスタ106が関連するとしてマーク付けされなかった後には、レジスタ102も関連性マーク表示を獲得しない。(関連しないとしてマーク付けされた)レジスタ106へと故障伝播経路が通ることは可能であるが、この経路を介しては、関連性は先に伝播しない。
【0080】
順方向のみの故障マスキングが検討される場合に、本例では、レジスタ102は、より遅い時点での情報が欠けているため、誤って、関連するとして見なされるであろう。
【0081】
分析される回路のために、解析の開始に際してグラフ構造が作成される。このデジタル半導体回路は、有向グラフGによって表される。
G=(N、V、N×V)
【0082】
ノードNの集合は、4個の部分集合の和集合で構成される。
−レジスタの集合R(レジスタ)
−組合せ挙動による回路関数の集合L(回路)
−入力信号無しで生成される信号(例えば、定数、特別なHW(ハードウェア)信号)の集合I(独立、Independent)
−回路の入力及び出力の集合E(環境)
N=R∪L∪I∪E
【0083】
集合Mからの各ノードは、他のノード/オブジェクトとの結合についての情報を含むオブジェクトに相当する。このオブジェクトは、この結合情報の他に、変数と、(論理ブロック又はレジスタとして機能する)当該オブジェクトへのアクセスについての情報を有するリストと、を含む。
【0084】
回路の挙動の解析は、逆方向シミュレーションの間に行われる。レジスタ入力口での特定の信号組合せを検出する独自のプロセスが生成される。適当な状態が検出された場合には、その結果として、該当するオブジェクトについての解析関数が呼び出される。解析は2つの部分、即ち、情報源についての部分と、情報受信側についての部分と、で構成される。
【0085】
第1部として、解析を開始するレジスタのために、或る関数が実行される。目下のシミュレーション時間は、このレジスタへの書き込みアクセスのための時点として利用される。シミュレーション日時の生成の際に遅延時間が利用されなかった場合には、遅延の影響は、ここで、書き込みアクセスの時点の修正により考慮することが出来る。逆方向シミュレーションの場合には、レジスタに対する書き込みアクセス及び読み出しアクセスの原則的な順序も交換され、即ち、レジスタの内容はまず、書き込まれ又は作成される前に、読み出され又は使用される。このレジスタ内容への読み出しアクセスは複数回行うことが可能であり、書き込みアクセスは一回のみ行われ、逆方向シミュレーションの際にレジスタ内容の寿命が終わる。書き込みアクセスが行われる場合には、このレジスタの関連する時間が、最も遡った読み出しアクセスの時点と、この書き込みアクセスの時点と、の差分の分だけ増分される。既に過去にあった全ての読み出しアクセスは、後続の書き込みアクセスの際には、もはや考慮されない。書き込みアクセスに対する読み出しアクセスが存在しない場合には、関連する(relevant)時間も増分されない。書き込みアクセスに対する少なくとも1つの読み出しアクセスが存在する場合には、レジスタ内容は、関連するとして見なされる。
【0086】
解析段階では、回路の遅延はまた、純粋に演算に関して解析結果に盛り込まれる。従って、以下の2つのバリエーションが存在する。
−遅延を含むシミュレーション、遅延を用いた解析
−遅延の無いシミュレーション、解析時に遅延を演算的にカプセル化(rechnerische Einbindung)
【0087】
2つのバリエーションは厳密に同じ結果をもたらすが、第2のバリエーションには、実行速度、及び、シミュレーション日時のデータファイルサイズにおいて利点がある。
【0088】
図4には、順方向のシミュレーション(図4b)、逆方向のシミュレーション(図4c)が示されている。
【0089】
図4は、電子回路503の2つの記憶素子又はレジスタ500及び502の、書き込みアクセス及び読み出しアクセスの間の連関関係を概略的に示している。さらに、遅延素子506が設けられている。
【0090】
必ずしも共通ではないクロック信号CLK 504と、先行するレジスタ500(中央の線、書き込みイベントについては下向きの矢印508、書き込みイベントについては上向きの矢印510)及び後続のレジスタ502(下の線、書き込みイベントについては下向きの矢印512、読み出しイベントについては上向きの矢印514)のための、上記クロック信号から得られるトリガ時点と、が示されており、このトリガ時点も同様に、必ずしも同時である必要はない。
【0091】
クロックエッジの時点に対して、先行するレジスタ500の書き込みイベント時点をずらすによって、設計に基づくレジスタ値(セットアップ時間、保持時間、Clock−To−Q時間)が、シミュレーション段階での遅延時間の影響が無いものとしても考慮される。このことは、ずれ522に集約されている。クロックエッジの時点に対して、読み出しイベントの時点をずらすことによって、同様に、設計に基づくレジスタ値と、レジスタ間に存在する他のゲート及び線の遅延時間と、が考慮される。ずれの値は、方向/符号に拘束されず、正の方向にも負の方向にも起こりうる。図4bは、順方向シミュレーションの際の状態を示し、図4cは、逆方向シミュレーションの際の状態を示している。特に遅延素子506による読み出しイベントのずれは、両方向の矢印520で示される。
【0092】
第2部において、故障伝播経路と、ソースレジスタと、が決定される。解析を開始したレジスタから出発して、結合情報を用いて、先行する論理ブロック及びレジスタが検査される。しかしながら、このことは、レジスタ内容が関連するとして見なされた場合にのみ行われる(推移的効果、transitiver Effekt)。レジスタ内容が関連しない場合は、作動レジスタが完全にマスクされることになる。レジスタ内容が関連する場合は、書き込みイベント時間が読み出しイベント時間として利用され、パラメータとして、検査すべきオブジェクトへと渡される。2つのケースが反復スキーマで処理される。
【0093】
先行するオブジェクトがレジスタの場合は、この経路はその源まで完全に追跡されている。ここで、この経路のために反復(Rekursion)が終了する。レジスタには、この読み出しアクセスの時点が更なる処理のために格納される。
【0094】
先行するオブジェクトが組合せブロックの場合は、この経路は、未だ完全には検査されていない。このブロックの入力信号及び論理関数に従って、故障伝播経路の更なる進路が回路によって決定されうる。このために、論理関数により故障マスキングの参照が指示される。故障伝播経路上の直ぐ前の先行するオブジェクトは、次の解析段階において、同様に検査される必要がある。故障伝播回路が引き続き追跡され、読み出しイベント時間が、導線の遅延と、正に注目しているブロックの論理関数の実行時間と、の分だけ増分され、修正されたパラメータとして渡される。
【0095】
この手続きは、故障伝播経路のソースレジスタが全て検出されるまで繰り返される。
【0096】
回路の時間挙動は解析結果に大きな影響を及ぼす。タイミング・ディレーティングを考慮するために、オブジェクトごとの遅延値が必要である。この遅延値は通常、ライブラリから抽出され、又は、静的なタイミング解析により生成される。回路の解析のためにグラフ構造を作成する際には、このタイミングパラメータが読み出され、他のオブジェクトとの各結合に対して割り当てられる。
【0097】
シミュレーションの間に、先行するオブジェクトが検査される場合には、タイミング・ディレーティングと同等に、読み出しアクセスの時点を対応して修正するために、この特定の経路の遅延を考慮する必要がある。
【0098】
順方向シミュレーション又は他のソースからの回路の既存の信号推移は、時間的に逆の順序で、回路の表現に盛り込まれる。しかしながら、個々の信号値変更の時間間隔は変更されない。内部ノードの信号値には、以前に記録された信号値が割り当てられる。
【0099】
しかしながら、解析機能の既存プロセスは、従来の形態で引き続き機能する。即ち、対応する条件が満たされる場合には(入力信号の組合せ)、解析のためのプロセスが開始される。
【0100】
解析方法によりアクティブに(aktiv)実行される必要がある唯一の手続きは、記録された値を用いて連続的に回路に刺激を与えることである。解析プロセスの作動は、刺激を受けた信号の変更により間接的にもたらされ、その際、エッジ制御されるプロセスは、各反対のエッジに対して応答する必要がある。これについては図4を参照されたい。図4では、例えば、レジスタは正のクロックエッジに応じて起動される→逆方向シミュレーションの場合、解析プロセスは、負のクロックエッジにより開始される。記録された値の先頭に達するまで、刺激が与えられる。
【0101】
レジスタ出力の関連時間の割合を決定するために、シミュレーションの間に、全ての書き込みアクセスが評価される必要がある。対応し合う書き込みアクセスと読み出しアクセスとの差分の総和が、関連時間全体を形成する。
【0102】
回路シミュレーションの際には、異なるレジスタに対する複数の書き込みアクセスが、厳密に同じ時点に生じるということが起こりうる。解析ソフトウェアのシーケンシャル構造に基づき、解析関数は必ずしも定められた順序では実行されない。しかしながら、この順序は解析結果に影響を及ぼさない。(後続のレジスタにより)読み出しイベントが生成される時点は、いかなる場合も、当該後続のレジスタによる書き込みイベントの生成よりも早い(通常、クロック信号を用いる回路では約1クロック周期)。書き込みイベントの際には、過去にあった読み出しイベントのみ考慮される。順序が定められていないために、レジスタには、(読み出しイベントtRead−Event=tNow+tDelay>tNowのために)既に将来に存在し次の書き込みイベントの評価の際にも利用される読み出しイベントも登録されうる。
【0103】
正しい解析結果を実現するためには、静的なタイミング解析の意味において正しく機能する回路が前提となる。
【0104】
本方法の実施によって、回路のレジスタごとに個別に感度の評価が提供される。本方法の特徴によって、任意の数のレジスタ段についての推移的マスキング効果が考慮されうる。
【0105】
最も容易で最も分かりやすい評価は、全シミュレーション時間に対する関連時間の比率により行われる。この比率は、時間的に均一に分散して発生する故障のどのくらいの割合が、回路の全関数に鑑みて、解析出力口で見えるようになるのかを反映する。
【0106】
さらに、このレジスタの、センシティブな期間(empfindlicher Zeitraum)の頻度及び長さについて統計を作成することが出来る。これにより、場合によっては、誤り比率の下げるための適切な処置が選択されうる。
【0107】
解析は原則的に、各可能な同期式デジタル回路を解析することが可能である。このために、代表的なテストパターンセットが必要である。通常ではこれは、回路の典型的な適用ケースである。解析は、単一故障モデルの仮定に基づいており、即ち、時間的及び空間的に隣接する複数の故障の影響は検討されない。
【0108】
単一故障の仮定は、再収束する回路構造と衝突する。再収束する回路部分の出力点の前に、又は、当該出力点で発生する全ての故障は、誤りのある複数の信号として収束点に表れる。しかしながら、マスクされた経路の決定の際には、単一故障又は独立した信号のみが仮定される。
【0109】
細かく細分化された関連性マーク表示、即ち、「関連する」、「関連しない」、「自己マスキングの疑い」、及び、「多重経路活性化の疑い」というレベルが、再収束する回路部分における収束点のラベルと共に存在するのだが、当該関連性マーク表示の利用及び生成によって、再収束する構造の影響を考慮することが可能である。
【0110】
しかしながら、更なる前提は、再収束する経路の信号の時間的な衝突である。同期式回路の場合、例えば、再収束する回路部分の異なる経路上の様々な数のレジスタ段が、再収束点における従属情報の衝突を防止する。解析の誤りは、従属情報が同じ時間に再収束点において処理される場合にのみ発生する。
【0111】
逆方向シミュレーション及び解析の際には、回路の解析出力口から回路の入力口への故障マスキングが追跡される。再収束する経路の収束点である論理ブロックでは、マスクされた経路が計算される。この論理ブロックの、再収束する経路に由来する入力信号は、関連するとも、関連しないとも見なすことが出来る。関連しないと見なされた信号経路上では、再収束する経路の出力点の方向に関連性マーク表示も伝播されない。この出力点では、全ての到着した関連性マーク表示が収集され(論理和)、マーク表示が到着しない場合には、再収束の出力点の前の回路部分も、関連しないとして見なされる。回路のこの出力点から、解析結果は、解析という意味では必ずしも正しくない。
【0112】
図5には、時間的に重み付けされた和が示されている。
【0113】
故障マスキング係数は、どのくらい割合の故障が、システム出力の見える変更を引き起こすのかという統計的な平均値である。しかしながら、故障マスキング自体は、離散的な性質をしており、即ち、故障は抑制され又は抑制されない。従って、離散値(1又は0、故障マスキング:アクティブ又はノンアクティブ)を有する一連の時間範囲の、連続値への転換は、当然のことながら、時間的に重み付けされた和(時間で割った故障マスキングの積分)によって行われる。このことは、時間的に均一に分散して発生する誤りの仮定と符合する。得られた故障マスキング係数は、注目する全時間に対する、センシティブな全時間範囲の長さの総和から計算される。図5には、様々な信号の、センシティブな時間範囲(網掛けされたブロック)の4つの推移600、602、604、606が例示されている。これについて、得られた故障マスキング係数が、図示されたセンシティブな時間範囲の推移の横の右側に示される。
【0114】
提示される方法は、電子回路の機能信頼性を検査するソフトウェアツール内で利用することができる。このツールによって原則的に、全てのデジタル電子回路を検査することが出来る。得られた結果は、安全性に関わるシステムにおいては信頼性を証明するために利用される。複雑なシステムの場合このように自動化された方法は有益であり、詳細に注意を払った考察が可能となることに注意されたい。
【0115】
提示される方法の結果は、検査された回路の改善のためにも利用されうる。未だ開発段階にあるシステムは、故障が起こりやすい弱い箇所を検査することが出来る。場合によっては、この弱い箇所は、設計変更によって防止することが出来る。
【0116】
本方法がテスト網羅度を決定するために利用される場合、大局的な故障リストは、本方法終了後に、注目するテストパターンセットについての検査可能な全ての故障を含む。検査可能な全ての故障はこのリストから直接抽出することが可能であり、検査可能ではない故障の集合は、注目する回路の、可能な故障の集合全体に対する補集合である。


【特許請求の範囲】
【請求項1】
電子回路(503)における故障可観測性を定める方法であって、各素子(400、402、500、502)について、発生した故障が解析出力信号(406、408、412)の異常を引き起こしうる期間が定められる、方法。
【請求項2】
第1のステップで、シミュレーション段階において、シミュレーションモデル及び回路シミュレータによって、前記電子回路(503)の挙動がシミュレートされ、第2のステップで、解析段階において、各素子(400、402、500、502)について、発生した故障が解析出力信号(406、408、412)の異常を引き起こしうる期間が定められる、請求項1に記載の方法。
【請求項3】
前記シミュレーション段階において、前記解析段階で考慮される遅延が利用される、請求項2に記載の方法。
【請求項4】
前記シミュレーション段階において遅延が利用されず、前記解析段階において、前記遅延の演算的カプセル化が行われる、請求項2に記載の方法。
【請求項5】
回路シミュレーションは順方向に行われる、請求項1〜4のいずれか1項に記載の方法。
【請求項6】
回路シミュレーションは逆方向に行われる、請求項1〜4のいずれか1項に記載の方法。
【請求項7】
全ての素子(400、402、500、502)に対して、前記シミュレーション時間の終了について関連性の初期状態が設定される、請求項1〜6のいずれか1項に記載の方法。
【請求項8】
前記電子回路(503)内の素子(400、402、500、502)について故障マスキング係数を定めるために利用される、請求項1〜7のいずれか1項に記載の方法。
【請求項9】
テストパターンの故障検出率を定めるために利用される、請求項1〜8のいずれか1項に記載の方法。
【請求項10】
請求項1〜9のいずれか1項に記載の特徴を備えた方法を特に実行するための、電子回路(503)内の故障可観測性を定める構成。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4a】
image rotate

【図4b】
image rotate

【図4c】
image rotate

【図5】
image rotate


【公表番号】特表2013−521483(P2013−521483A)
【公表日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2012−555347(P2012−555347)
【出願日】平成23年2月8日(2011.2.8)
【国際出願番号】PCT/EP2011/051786
【国際公開番号】WO2011/107321
【国際公開日】平成23年9月9日(2011.9.9)
【出願人】(501125231)ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング (329)
【Fターム(参考)】