(57)【要約】  エラー検出回路（２０）が集積回路内のどこに置かれるべきかを選択する方法は、基準及びテスト設計の模擬を用い、エラーがテスト設計に注入され、ファンアウト分析がそれら注入されたエラーの上に行われて、エラー伝播特性を識別する。このように、伝播されたエラーがそれら自体を大いに現しそうでキー構造状態を保護するレジスタ（１２）が識別され、エラー検出機構の効率的な配置が達成される。集積回路（６８）内で、不活性な回路要素からの出力信号は、集積回路の検出された現時の状態に依存して隔離ゲート（９２、９４、９６、９８、１００）を受け得る。このように、ソフト・エラーが生じる不活性な回路要素は不適切な出力信号を有し、集積回路の残りに到達することからゲーティングされて誤った動作を減少する。
2009502037.tif 000002
【特許請求の範囲】
【請求項１】
それぞれのエラー検出回路を配置するために集積回路内の１つまたは２つ以上の位置を選択する方法であって、
前記集積回路内の複数の位置に対してそれらの位置において生じる信号エラーのためのそれぞれのファンアウト特性を決定するよう前記集積回路を分析するステップと、
前記ファンアウト特性に依存して前記エラー検出回路のための位置を選択するステップと、
を含む方法。
【請求項２】
前記分析するステップは、調査されている位置において１つまたは２つ以上の信号エラーを注入しつつ前記集積回路の動作を模擬するステップを含む請求項１に記載の方法。
【請求項３】
前記１つまたは２つ以上の信号エラーを有する及び有さない前記集積回路の模擬された動作間の差を検出するステップを含み、検出された差は信号エラーを示す請求項２に記載の方法。
【請求項４】
前記集積回路は、信号値を記憶するよう動作可能なレジスタ回路を含み、該レジスタ回路は、データ処理動作及び処理制御動作の１つまたは２つ以上を行うよう動作可能なロジック回路によって相互接続される請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
信号エラーは、前記レジスタ回路に記憶された信号値において検出される請求項４に記載の方法。
【請求項６】
前記１つまたは２つ以上の信号エラーは、前記レジスタ回路及び前記ロジック回路の１つまたは２つ以上に対応する位置において注入される請求項２または４に記載の方法。
【請求項７】
前記選択するステップは、信号エラーが最も検出可能でありそうな前記集積回路内の位置を識別するために前記ファンアウト特性を統計的に分析するステップを含む請求項１乃至６のいずれか１項に記載の方法。
【請求項８】
前記分析するステップは、エラー・タイミングの所定の範囲における前記集積回路内の所定の範囲の位置に対して前記ファンアウト特性を決定するステップを含む請求項１乃至７のいずれか１項に記載の方法。
【請求項９】
前記エラー検出回路は、前記レジスタ回路及び前記ロジック回路の１つまたは２つ以上において位置付けられる請求項４に記載の方法。
【請求項１０】
集積回路であって、
信号値を記憶するよう動作可能な複数のレジスタと、
前記複数のレジスタを相互接続し、かつデータ処理動作及び処理制御動作の１つまたは２つ以上を行うよう動作可能な複数のロジック回路と、
を含み、
前記集積回路内の少なくとも１つのエラー発生源の位置における信号エラーは、該信号エラーが前記集積回路内の複数のさらなる点に伝播するように、関連のファンアウト特性を有し、
エラー検出回路は、前記複数のさらなる点のうちの選択されたさらなる点に配置され、前記選択されたさらなる点は、
（ｉ）前記集積回路内の複数のエラー発生源の位置からエラーが伝播する点、
（ｉｉ）前記エラー発生源の位置から伝播するエラーの検出が統計的に最もありそうな前記複数のレジスタ内の点、
のうちの１つまたは２つ以上である、集積回路。
【請求項１１】
前記エラー検出回路は、
（ｉ）少なくとも２つの時間的に離間した時刻において前記点に入力される信号をサンプリングするよう動作可能な回路であり、前記サンプリングされた信号における差が前記点に伝播する信号エラーを表わす；
（ｉｉ）所定の時間的な間隔中に前記点に入力される信号における信号推移を検出するよう動作可能な回路であり、検出された推移が前記点に伝播する信号エラーを表わす；
のうちの１つである請求項１０に記載の集積回路。
【請求項１２】
請求項１乃至９のいずれか１項に記載の方法に従って選択されたそれぞれの位置に１つまたは２つ以上のエラー検出回路を有する集積回路。
【請求項１３】
集積回路であって、
それぞれのデータ処理動作を行うよう動作可能な複数の回路ユニットと、
回路ユニット間の信号経路を制御するよう位置付けられ、閉状態においては回路ユニット間を通されているそれぞれの信号における変化を阻止するようかつ開状態においては回路ユニット間を通されるそれぞれの信号における変化を許容するよう動作可能な複数のエラー隔離ゲートと、
前記閉状態または前記開状態にあるよう前記複数のエラー隔離ゲートのそれぞれの１つを制御するために前記集積回路の現在の状態に応答する隔離ゲート制御器と、
を備え、前記隔離ゲート制御器は、少なくとも一つの回路ユニットが前記現在の状態において電力付勢されているエラー隔離された回路ユニットであるが、前記エラー隔離された回路ユニットからの１つまたは２つ以上の出力信号を決定するようにデータ処理動作を行うためには前記現在の状態において用いられていないように、前記エラー隔離ゲートを制御し、前記エラー隔離された回路ユニットは、前記エラー隔離された回路ユニット内に生じる信号エラーが他の回路ユニットに伝播することから阻止されるように前記閉状態においてエラー隔離ゲートによって包囲されている集積回路。
【請求項１４】
前記信号エラーは、一時的なエラーである請求項１３に記載の集積回路。
【請求項１５】
前記現在の状態は、現在処理されている１つまたは２つ以上のプログラム命令に依存している請求項１３及び１４のいずれか１項に記載の集積回路。
【請求項１６】
現在の状態は、前記集積回路の現在の処理モードに依存している請求項１３、１４または１５のいずれか１項に記載の集積回路。
【請求項１７】
前記エラー隔離ゲートの少なくとも１つは、マルチプレクサが前記エラー隔離された回路ユニットからの出力信号を送信のために選択しないように前記マルチプレクサの選択入力を制御するよう動作可能である請求項１３乃至１６のいずれか１項に記載の集積回路。
【請求項１８】
前記エラー隔離ゲートの少なくとも１つは、前記エラー隔離された回路ユニットからの出力信号をラッチするよう動作可能である請求項１３乃至１７のいずれか１項に記載の集積回路。
【請求項１９】
前記エラー隔離された回路は、
（ｉ）動作の現在のモードでは動作可能でない命令デコーダ；
（ｉｉ）動作の現在のモードでは動作可能でないデバッグ回路；及び
（ｉｉｉ）現在処理されている任意のプログラム命令のためには動作可能でないデータ経路の部分、
である請求項１３乃至１８のいずれか１項に記載の集積回路。
【請求項２０】
集積回路内のエラー伝播を減少する方法であって、
複数の回路ユニットでそれぞれのデータ処理動作を行うステップと、
閉状態では回路ユニット間を通されているそれぞれの信号における変化を阻止し、開状態では回路ユニット間を通されているそれぞれの信号における変化を許容するよう動作可能に回路ユニット間に位置付けられた複数のエラー隔離ゲートで信号経路を制御するステップと、
前記集積回路の現在の状態に応答して、前記閉状態または前記開状態にあるように前記複数のエラー隔離ゲートのそれぞれの１つを制御するステップと、
を含み、前記エラー隔離ゲートは、少なくとも一つの回路ユニットが前記現在の状態において電力付勢されているエラー隔離された回路ユニットであるが、前記エラー隔離された回路ユニットからの１つまたは２つ以上の出力信号を決定するようにデータ処理動作を行うためには前記現在の状態において用いられていないように、制御され、前記エラー隔離された回路ユニットは、前記エラー隔離された回路ユニット内に生じる信号エラーが他の回路ユニットに伝播することから阻止されるように前記閉状態においてエラー隔離ゲートによって包囲されている方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路の分野に関する。特に、本発明は、集積回路内での、例えば、放射された粒子の衝突によって誘起されたエラーのようなエラー伝播の制御に関する。
【背景技術】
【０００２】
特徴サイズを減少し、集積化を高め、そして電圧レベルを低める方向に向かう装置のスケーリングの傾向は、一般に、ビット・フリップを引き起こすのに必要な電荷の最小量を下げることにより、また潜在的な粒子の衝突に対して敏感な目標の数を増やすことにより、マイクロプロセッサ及び集積回路内でのソフトなエラー率（放射衝突によって誘起されるもののような非永久的なエラー）を増やす。これらの傾向は、種々の異なった集積回路の市場において益々重要な設計の信頼性制約を作ってきた。
【０００３】
厳密な信頼性制約が代表的には宇宙航空市場及び高級な（ハイエンド）サーバ市場において独占的に適用されてきたけれども、自動車及びヘルスケア産業のような種々の新興分野における埋設されたマイクロプロセッサに対する需要の増加は、信頼性のある埋設された設計に対する必要性を発生してきた。装置の信頼性を報告するための標準の機構は、時間における故障の数、すなわちＦＩＴ割合であり、ここに、１つのＦＩＴの割合は、エラーが生じる前の平均時間が１０億個の装置時間であるということを意味する。埋設された装置における信頼性に対する高まる必要性の例として、自動車産業における拡張しつつある集積化の場合が代表的である。使用中の自動車の非常に高い数、並びにこれらの自動車内に埋設されたマイクロプロセッサの多数の例に起因して、これは、現在の技術では任意の与えられた時間においてソフトなエラーに起因する多数の装置故障が生じるであろうということを示す。このことは、受容可能なことではない。
【０００４】
この問題に貢献するもう１つの重要な要素は、高性能な設計と比較して代表的な埋設された装置においては、一層長いクロック・サイクル時間が用いられる傾向がある、ということである。埋設された設計におけるこの一層長いクロック・サイクル時間は、代表的には、順次的な状態要素間で一層大きいロジック深さに導く。この一層大きいロジック深さの効果は２つ折り（two-fold）である。第１に、大きいロジック深さは、組み合わせロジック（結合ロジック）によって消費されるチップの相対面積を増加して、組み合わせロジックをソフトなエラー（例えば、粒子の衝突）に一層多く感じやすくさせる。例えば、組み合わせロジックは、英国のケンブリッジのＡＲＭ  Ｌｉｍｉｔｅｄによって設計されたＡＲＭ９２６ＥＪＳコアの全セル面積の５８％を消費する。第２に、一層大きいロジック深さは、代表的には、一層広い信号のファンアウトを意味し、このように、単一のソフトなエラーによって引き起こされる正しくない値をラッチし得る潜在的な目標の数を増加する。ソフトなエラー率は、また、ラッチ及びレジスタのような順次ロジックにおいて増加し、そしてこれらの点におけるソフトなエラーも、ファンアウト・ネットを通して伝播する。
【０００５】
ＳＲＡＭのようなメモリ・システムにおいてソフトなエラーを検出して修正するための機構を提供することが知られている。メモリ装置は、代表的には、高密度を達成するための要望に起因して小さい幾何形状を使用する。これらの小さい幾何形状は、以前にはマイクロプロセッサのような集積回路内の組み合わせ及び他のロジックにおいて代表的に用いられてきた一層大きい回路素子よりも傷つき易い。ＥＣＣコードのようなメモリ・システムのエラー・チェック機構内では、パリティ・ビット等が、このソフト・エラー問題を扱うための試みにおいて用いられてきた。これらの技術は、事実上純粋な状態データを記憶する高密度メモリ・システムの文脈においては働くけれども、それらは、一層汎用的な集積回路における組み合わせロジック等内で動的に生じるソフト・エラーに対する保護に対しては適していない。
【０００６】
集積回路の設計内のすべてのノードを実質的に保護するために集積回路の設計を通してエラー検出及びエラー修正の機構を導入することが可能であり得る。しかしながら、このような方法は、該設計内のほとんどの素子ごとにエラー検出及びエラー修正機構を配置することに起因してゲート数が大いに増加するので、実際的ではない。
【発明の開示】
【課題を解決するための手段】
【０００７】
一態様に鑑みれば、本発明は、それぞれのエラー検出回路を配置するために集積回路内の１つまたは２つ以上の位置を選択する方法であって、
前記集積回路内の複数の位置に対してそれらの位置において生じる信号エラーのためのそれぞれのファンアウト（fan-out）特性を決定するよう前記集積回路を分析するステップと、
前記ファンアウト特性に依存して前記エラー検出回路のための位置を選択するステップと、
を含む方法を提供する。
本発明の技術は、集積回路内におけるエラー検出回路の一層効率的な配置が、集積回路設計内の位置において発生する信号エラーのためのファンアウト特性（可能には状態依存マスキング効果を含む）を分析することによって行なわれ得るということを認識するものである。この方法で、エラー検出回路に専用の回路資源は、最も利点を生ずる場所、例えば、それらが最もエラーを検出しそうな場所またはそれらがキー構造状態を保護することができる場所の、または他の理由の、集積回路内の点に、全体として向けられ得る。さらに、ファンアウト特性を分析するこの低レベルの方法は、回路の実際のゲート・レベルのレイアウト及び回路要素の配列が機械発生される場合の合成された設計におけるアプリケーションにとって適切である。設計者は、検出されそうなエラーのタイプ及び割合の知識でもって改良されたバランスを得る方法で、検出器によって消費される回路面積に対してエラーの保証範囲をトレードオフするようにファンアウト分析を用いることができる。保証範囲の経費（オーバーヘッド）及び検出の精度は互いに対してトレードオフされ得る。
分析するステップは、調査されるべき位置において１つまたは２つ以上の信号エラーを注入しつつ集積回路の動作を模擬することによって行われるのが有利であり得る。集積回路の動作を模擬することは、集積回路の設計のテスト及び確認においてすでに通常に用いられている技術であり、従って、この様な模擬を行なうためのインフラストラクチャは良く開発されており存在している。このインフラストラクチャは、本発明の技術に従って注入されたエラーのファンアウト特性を分析するために便宜的に再使用され得る。
この分析を達成する１つの特に便宜的な方法は、注入されたエラーを有するもの及び有さないものの２つの設計例の模擬を実行し、次に、結果の状態における差を観察することであり、これらの差は伝播された信号エラーを示すものである。
多くの汎用の集積設計は、信号値を記憶するよう動作可能なレジスタ回路から形成され、該レジスタ回路は、データ処理動作及び処理制御動作の１つまたは２つ以上を行うロジック回路によって相互接続される。レジスタを相互接続するロジック回路は、本発明の技術をもってして以外ではそのソフト・エラー行為に関して分析することが通常は困難である組み合わせロジックを含み得る。本発明の技術は、また、レジスタ及びラッチのような他の回路要素におけるエラーを検出するためにも用いられることができる。
このようなレジスタ回路及び相互接続したロジック回路の構成組織内では、信号エラーは、レジスタ回路に記憶された信号値において検出され得、そして信号エラーは、レジスタ回路またはこれらのレジスタ回路を相互接続するロジック回路のいずれかに対応する位置において注入され得る。
検出されたファンアウト特性に依存したエラー検出回路のための位置の選択は、種々の異なった方法で行われることができる。１つの技術は、信号エラーが最も検出可能でありそうな集積回路内のそれらの位置を識別するために変化するタイミング及び位置を有する複数のエラー注入に渡ってファンアウト特性を統計的に分析することである。このように、エラー検出回路を配置することによりソフト・エラー検出割合及び面積保証範囲に関して良好な結果を生成する場所である、エラー検出のための“スウィート・スポット”が検出され得る。
このような分析における注入されたエラーは、テスト下の集積回路内の位置において長所的に変化され、そして回路クロッキング及び装置の他のタイミング特性に匹敵したそれらの相対的なタイミングに関して変化される。
もう１つの態様に鑑みれば、本発明は、集積回路であって、
信号値を記憶するよう動作可能な複数のレジスタと、
前記複数のレジスタを相互接続し、かつデータ処理動作及び処理制御動作の１つまたは２つ以上を行うよう動作可能な複数のロジック回路と、
を含み、
前記集積回路内の少なくとも１つのエラー発生源の位置における信号エラーは、該信号エラーが前記集積回路内の複数のさらなる点に伝播するように、関連のファンアウト特性を有し、
エラー検出回路は、前記複数のさらなる点のうちの選択されたさらなる点に配置され、前記選択されたさらなる点は、
（ｉ）前記集積回路内の複数のエラー発生源の位置からエラーが伝播する点、
（ｉｉ）前記エラー発生源の位置から伝播するエラーの検出が統計的に最もありそうな前記複数のレジスタ内の点、
のうちの１つまたは２つ以上である、集積回路を提供する。
エラー検出回路は、それら自体、種々の異なった方法で動作することができ、例えば、離間した２つの時刻において信号をサンプリングしてエラーを表わすものとして差を検出するような方法で動作することができる。もう一つの例は、エラーを示すものとして信号における変化に応答するエラー検出回路である。
もう１つの態様に鑑みれば、本発明は、集積回路であって、
それぞれのデータ処理動作を行うよう動作可能な複数の回路ユニットと、
回路ユニット間の信号経路を制御するよう位置付けられ、閉状態においては回路ユニット間を通されているそれぞれの信号における変化を阻止するようかつ開状態においては回路ユニット間を通されるそれぞれの信号における変化を許容するよう動作可能な複数のエラー隔離ゲートと、
前記閉状態または前記開状態にあるよう前記複数のエラー隔離ゲートのそれぞれの１つを制御するために前記集積回路の現在の状態に応答する隔離ゲート制御器と、
を備え、前記隔離ゲート制御器は、少なくとも一つの回路ユニットが前記現在の状態において付勢されているエラー隔離された回路ユニットであるが、前記エラー隔離された回路ユニットからの１つまたは２つ以上の出力信号を決定するようにデータ処理動作を行うためには前記現在の状態において用いられていないように、前記エラー隔離ゲートを制御し、前記エラー隔離された回路ユニットは、前記エラー隔離された回路ユニット内に生じる信号エラーが他の回路ユニットに伝播することから阻止されるように前記閉状態においてエラー隔離ゲートによって包囲されている集積回路を提供する。
【０００８】
本発明は、集積回路内に生じたエラーが問題の集積回路に渡ってランダムな分布を有する傾向があると言うことを認識している。しかしながら、集積回路のすべての部分が、任意の与えられた時間においてアクティブ化されているわけではない。集積回路の幾つかの部分は、エネルギを節約するために時間における特定の点において電力ダウン（電力消勢）され得る。このような電力ダウンされた領域内のエラーは、問題を起しそうにはない。しかしながら、集積回路内の他の領域は電力付勢され得るが、それにもかかわらず、問題の集積回路の現在のデータ処理動作及び／または状況に起因して特定の時刻においてアクティブ化されていないかもしれない。しかしながら、時間における該特定点において使用されてないにもかかわらず、これらの使用されていない領域内に生じるエラーは、これらの使用されていない領域の外に伝播し得、全体として集積回路内にエラーまたは故障を生じる。この技術は、閉じられているまたは開いているように回路ユニット間の信号経路を制御するように位置付けられたエラー隔離ゲートを提供する。隔離ゲート制御器は、集積回路の現在の状態に応答してこれらの隔離ゲートを制御し、これにより、電力付勢されているがデータ処理動作を行ってこれらの回路ユニットからの１つまたは２つ以上の出力信号を決定するようには現在の状態では用いられていない回路素子が隔離され、従って、隔離された回路ユニット内に生じた信号エラーは、他の回路ユニットに伝播されることから阻止される。隔離された回路ユニットは、生じてしまったエラーから自発的に回復し得るか、またはエラーは前活性的に（pro-actively）検出されてエラー回復機構が開始され得る。隔離された回路ユニットが、再度、集積回路の処理動作に参加することを必要とされるときまでには、該回路ユニットはそのエラーから回復していることが可能であり、それにより、処理は妨げられずに続くことができる。もし隔離された回路ユニットが未だに回復されていなかったならば、次に、エラー回復機構が、制御された方法で開始され得る。
【０００９】
この技術が特に有用である信号エラーは、粒子衝突によって誘起されるエラーのような一時的なエラーである。
【００１０】
アクティブ化されていない回路ユニットを適切に隔離するよう、どの回路ユニットが活性化されていて、どの回路ユニットが活性化されていないかを決定するために、隔離ゲート制御器によって用いられる集積回路の現在の状態は、現在処理されつつある１つまたは２つ以上のプログラム命令及び集積回路の現在の処理モードを含む種々の入力を含むことができる。
【００１１】
エラー隔離ゲートは、種々の異なった方法で動作することができるが、特に好ましい方法は、隔離された回路ユニット内のエラーに起因して内部の信号が変化したか否かにかかわらずそれが変化しないように隔離された回路ユニットの出力をラッチすること、及びアクティブ化されてない回路ユニットからの出力が集積回路の現在の状態に間違って与えられて選択されないようにマルチプレクサの選択入力を制御すること、を含む。
【００１２】
本発明の技術が特に適用可能であるであろう隔離された回路ユニットの例は、動作の現在のモードでは動作可能でない命令デコーダと、動作の現在のモードでは動作可能でないデバッグ回路と、現在処理されている任意のプログラム命令のためには動作可能でないデータ経路の部分とを含む。他の回路ユニットも、この技術に従って隔離され得る。
【００１３】
もう一つの態様に鑑みれば、本発明は、集積回路内のエラー伝播を減少する方法であって、
複数の回路ユニットでそれぞれのデータ処理動作を行うステップと、
閉状態では回路ユニット間を通されているそれぞれの信号における変化を阻止し、開状態では回路ユニット間を通されているそれぞれの信号における変化を許容するよう動作可能に回路ユニット間に位置付けられた複数のエラー隔離ゲートで信号経路を制御するステップと、
前記集積回路の現在の状態に応答して、前記閉状態または前記開状態にあるように前記複数のエラー隔離ゲートのそれぞれの１つを制御するステップと、
を含み、前記エラー隔離ゲートは、少なくとも一つの回路ユニットが前記現在の状態において電力付勢されているエラー隔離された回路ユニットであるが、前記エラー隔離された回路ユニットからの１つまたは２つ以上の出力信号を決定するようにデータ処理動作を行うためには前記現在の状態において用いられていないように、制御され、前記エラー隔離された回路ユニットは、前記エラー隔離された回路ユニット内に生じる信号エラーが他の回路ユニットに伝播することから阻止されるように前記閉状態においてエラー隔離ゲートによって包囲されている方法を提供する。
【００１４】
さて、本発明の実施形態を、例示的な目的のみによって添付図面を参照して説明する。
【発明を実施するための最良の形態】
【００１５】
図１は、特定のクロック・エッジにおいて信号値を記憶するレジスタ２の第１の組を示す。これらの信号値は、次に、これらの処理動作の結果がレジスタ６のさらなる組内に取得されかつ記憶される前に、組み合わせロジック４内で信号処置動作を受ける。集積回路の部分のこの抽象化は、多くの集積回路設計内の制御及び汎用処理回路に一般的に適用可能である。組み合わせロジック４は、クロック・レートに依存した大きい深さを有することができ、代表的には非常に複雑であり、自動化されたツールを有する以外の動作では分析するのが困難である。
【００１６】
図１は、組み合わせロジックのノード８内の回路のこの部分の動作の模擬に注入されている予期しない変化を示す。このような予期しない変化は、粒子の衝突に起因するようなソフト・エラーまたは幾つかの他の一時的なエラーの発生を模擬している。この注入されたエラーから帰結する予期しない変化は、示されているように、組み合わせロジック４内の他のノードに伝播する。この伝播は、全体としてシステム設計内の他の信号の現在の状態に依存し得る発生源からの特性的なファンアウト・パターンと共に生じる。例として、ノード１０は、ノード８において挿入されていたエラーをマスクするよう働くものとしてこの例においては示されているが、異なった時間において模擬され得る集積回路の他の状態においては、ノード１０は、そのエラーをパスし得る。ファンアウト特性のこの複雑で状態依存の性質は、種々の集積回路の状態に渡ってエラー注入の模擬が望ましくないという一つの理由である。さらに、実際のアプリケーション・コードの実行を模擬しつつエラー注入を模擬することは望ましくなく、その理由は、アプリケーション・コードの実行を模擬する際に集積回路があるであろう状態は、集積回路の使用において実際に生じるであろうこれらの状態と一層良好に相関されるという傾向を有するであろうからである。
【００１７】
図１から分かるように、ノード８において注入されたエラーは、引き続きレジスタ１２及び１４においてラッチされる。さらなるエラーが、次に、ノード１６において注入されるものとして模擬される。このさらなるエラーは、次に、それ自体のファンアウト特性に従って伝播し、そして同様に種々の点においてマスキングまたは非マスキングを受け、最終的に、レジスタ１２及び１８内でラッチされる。
【００１８】
この大いに単純化された例においては、ノード８及び１６の双方において注入されたエラーは、レジスタ１２にラッチされるエラーに帰結し、従って、レジスタと１２と関連させてエラー検出回路２０を配置することが効率的であり、その理由は、これがこれらの複数の発生源からのエラーを検出することができるからである。関係するノード及びロジック関数に依存して他の位置も可能である。それが占有し得る大量の異なった状態及び実際の集積回路設計の複雑さは、結果のエラーが最も現れそうで複数の発生源からのエラーを検出するレジスタを統計的に分析するよう、多くの数千の注入されたエラーの模擬に帰結する、ということが理解されるであろう。エラー検出器２０は、また、キー構造状態を表わすために既知の位置に置かれても良く、または特に充分なエラー範囲を達成することが望ましいかも知れないという理由でそれらのエラーがまれであるとしても他の位置においてはエラー検出器によって検出されない、エラーがそれら自身を現すことができる位置に置かれても良い。これらの技術によって提供されるもう１つの可能性は、必ずしもレジスタ化されたエッジにおいてではない、ロジック経路におけるさらなる上流に検出回路を位置付けることである。このことは、中央における一層高い範囲を与えるであろう；可能な欠点は、それらのエラーの幾つかが引き続くマスキングに起因して除去されてしまい得るということであるが、全体の検出範囲は改善され得る。さらに、範囲における目的の信頼性の程度が得られ得る。
【００１９】
さらに説明された例においては、ＡＲＭ９２６ＥＪＳマイクロプロセッサのＶｅｒｉｌｏｇ  ｍｏｄｅｌが用いられた。このマイクロプロセッサは、３２ビットの埋設型構造（アーキテクチュア）のマイクロプロセッサであり、フェッチ、レコード、実行、メモリ及び書き込みバック段からなる５つの段のパイプラインを有する。この分析において用いられる履行は、３７の構造的に限定されたレジスタ（３１の汎用レジスタ及び６つの状態レジスタ）、４ＫＢの命令キャッシュ及び４ＫＢのデータ・キャッシュを有する。Ｖｅｒｉｌｏｇ  ｍｏｄｅｌは、１３０ｎｍプロセスを用いる代わりに、走査チェーン挿入及び検査のための設計方法と合成された。
【００２０】
試験台（テスト・ベンチ）は、上述からの一対の合成されたネットリスト、すなわち基準設計及び検査下の設計を含んで形成された。双方のネットリストは、合成及びレイアウト・ツールによって合成及びレイアウト段において集められたタイミング情報で注釈を施される。試験台（テスト・ベンチ）は、また、模擬初期設定においてベンチマークをロードするために用いられる行為メモリ・モデルをも含む。
【００２１】
ソフト・エラー注入及び分析のフレームワークは、模擬の開始において呼び出される一組のＶｅｒｉｌｏｇ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ  ライブラリから構成される。呼び出し時に、フレームワークは、検査下のユニット内のすべての順次状態エレメント及びネットの組を導出するために設計を探る。
【００２２】
アプリケーション・ベースの分析及びランダム状態の分析の双方が支援される。アプリケーション・ベースの分析は、模擬初期設定において行為的メモリ・モデルにロードされるベンチマーク・コードを実行することによって行なわれる。この場合において、フレームワークは、例えば、その最初の欠陥注入を行なうために模擬の開始後に２５００及び５０００サイクル間の時間におけるランダム点を選択するであろう。もし、行なわれている実験が一時的マスキング分析を含むよう意図されるならば、次に、欠陥注入時間は、ランダム的にピコ秒で選択され、欠陥期間は、例えば、間隔（０．２５＊ＣＬＫ，ＣＬＫ）上でランダム的に選択される。前述は単なる例示的なタイミングであり、他のまたはランダムなタイミングを用いることが可能であろう。もし、そうでないならば、欠陥注入時間は、クロック信号の幾つかの未来の立ち上がりエッジにおいてスケジューリングされ、１つのクロック・サイクルの期間の間保持されるであろう。ランダム状態の分析が行なわれるとき、フレームワークは、機械をランダム的に発生された状態に設定し、欠陥を注入し、引き続くサイクルにおいて欠陥の影響を観察し、そして反復することにより、実験を駆動するために用いられる。ランダム状態をベースにした実験とは、エラーの論理的マスキングの、アプリケーションとは無関係の対策を導出することを意味される。
【００２３】
欠陥注入時において、模擬されている注入実験のタイプ（組み合わせロジックにおけるソフト・エラー、順次状態におけるソフト・エラー、またはその双方）に依存して、ランダム設計要素は、テスト中のユニットから欠陥注入に対して選択される。もし欠陥がロジック要素に注入されるべきであるならば、設計におけるランダム・ネットが選択され、ワイヤ上に存在する値が反転され、ワイヤを駆動するロジック・ゲートにおいてアップセットを模擬する。同様に、レジスタにおける欠陥が模擬されているとき、ランダム・レジスタが選択され、その出力は反転される。欠陥が設計に注入されるとき、フレームワークは、欠陥場所、注入の時間及びパルス期間を記録（ログ）する。
【００２４】
欠陥がシステム内に注入されてしまった後、各引き続く立ち上がりクロック・エッジにおいて、テスト下のユニットにおける各マイクロ構造のレジスタは、基準設計におけるそのデュアルに対して比較される。さらに、設計（Ｉ／Ｏバス、コプロセッサ・インターフェース、テスト装備）上のすべてのトップレベルの出力ポート、及びキャッシュへの入力は、どの不正値もがコア・データ経路から逃れなかったということを確実にするためにチェックされる。もし、欠陥注入の後の最初のサイクルにおいて、レジスタ、キャッシュまたはトップレベル・ポートの不整合が生じないならば、次に、注入された欠陥はシステムに影響を与えなかったものであり、新しいランダム時間、例えば、未来における少なくとも１００サイクルが、もう１つの欠陥注入実験に対して選択される。もし、任意のレジスタ、キャッシュまたはポート不整合が生じるならば、次に、欠陥分析のフレームワークが、後の分析のためにエラーの相互サイクル及び場所を記録（ログ）する。欠陥分析のフレームワークは、次に、欠陥注入時間の後の１００サイクルの間システム全体を通してエラーの進行を追跡し続ける。もし、１００サイクルの後に、エラーが存在せず、エラーがキャッシュまたはトップレベルのポートに伝播しなかったならば、次に、システムは清浄でありそして欠陥は成功裏にマスキングされたものであり、欠陥注入のための新しいランダム時間が選択される。もし、トップレベルのポートまたはキャッシュ・エラーが生じたならば、次に、模擬停止及びエラー・ログ（記録）は、伝播行為及び構造的状態の影響を分析するための後処理のために書き込まれる。
【００２５】
図２は、エラー注入及び分析のフレームワークの高レベルの概観を示す。試験台（テストベンチ）システム２００内には、基準設計の事例（インスタンス）２０２及びテスト設計の事例（インスタンス）２０４が模擬される。これらの模擬は、同じアプリケーション・コード２０６を実行するか、または同じランダム状態から出発するかを平行に始める。信号エラーは、欠陥注入スケジューラ２０８によってテスト設計２０４に注入される。引き続く信号値における差は、エラー・チェッキング及びロギング・コードによって検出されかつロギングされ、そしてエラー信号伝播を示す。注入及び分析フレームワーク２１２が統計的に妥当である充分なデータを収集したとき、これは、検出回路のための示唆されたノード場所及びレポートを発生するために用いられる。
【００２６】
図３は、分析動作を示すフロー図である。ステップ２２において、分析されるべき集積回路設計が合成される。ステップ２４において、この設計のタイミング分析が行なわれ、次に、このタイミング情報は、タイミングの正確な模擬が行なわれ得るように、ステップ２６において設計のためのネットリストに注釈される（このステップは好ましいが、省略されても良い）。ステップ２８において、テスト下の設計の２つの事例（インスタンス）が、図２の分析フレームワークに、すなわち、基準設計及びテスト設計に挿入される。ステップ３０において、分析がアプリケーション・コードまたはランダム状態を用いて行なわれるべきか否かに関する決定が為される。もし、アプリケーション・コードが用いられるべきであるならば、次に、ステップ３２は、基準及びテスト設計の双方上で少なくとも模擬においてこのコードを実行し、そしてステップ３４は、エラーのためのランダム注入時間を選択する。もし、分析がアプリケーション・コードを用いて行なわれるべきでないならば、次に、処理はステップ３６に進み、そこで、基準及びテスト設計が同じランダム状態にセットされる。
【００２７】
ステップ３８において、テスト設計内のランダム・ノードが選択され、そこで、エラーが注入されるべきである。このノードは、レジスタであって良く、または組み合わせロジックのピースであっても良く、または幾つかの他の要素であっても良い。ステップ４０において、エラーのためのランダム期間が選択される。ステップ４２は、次に、（アプリケーション・コード分析例において最もありそうな）選択された注入時間の前のサイクルに基準及びテスト設計をクロックし、次に、ステップ４４において、信号エラーが、期間Ｄで及び場所Ｎに到達したサイクル中の時刻Ｔにおいて注入される。ステップ４６は、次に、エラーがテスト設計内で伝播することができるように、基準及びテスト設計のクロッキングを続ける。ステップ４８は、基準及びテスト設計の状態を読取り、これらは、何等かの差を検出するためにステップ５０において比較される。検出された差は、分析のために収集されているものとしてエラー挿入から帰結するエラーの統計的分配を記録するデータを更新するために用いられる。もし、さらなる統計が必要ならば、次に、ステップ５４はステップ３０への処理に戻り、エラー注入の模擬が反復される。
【００２８】
図４は、エラー検出器の配置を決定するためのファンアウト特性の分析を図式的に示すフロー図である。ステップ５６において、複数のエラー注入実験からのデータが対照される。ステップ５８において、設計（レジスタ）における各順次要素は、その順次要素のための入射ロジック・コーン（incident logic cones）内での注入されたエラーのための該順次要素へのエラー伝播の頻度を決定するために分析される。この方法で、それらの入射論理コーン（incident logical cones）の１つ内で１つが生じるときのエラーを最も高く検出しそうな順次ロジック要素が識別されることができ、その理由は、これらが、エラー検出器場所として使用されるための良好な候補であるからである。
【００２９】
ステップ６０において、各注入されたエラー場所は、結果のエラーを格納する順次要素のファンアウト、数及び場所を決定するために調査される。この方法で、ファンアウト特性は、種々の位置において注入されたエラーのための広範なエラー検出範囲を提供する順次ロジック要素（レジスタ）を識別するために用いられ得る。さらに、エラー検出範囲において欠乏しているエラー注入位置は、エラー範囲の所望のもしくは包括的なレベルを生成するよう識別され得、そしてまた、キー構造状態に影響与え得るエラー注入点も識別され得る。
【００３０】
ステップ６２において、ステップ５８及び６０において抽出されたエラー伝播データ（ファンアウト・データ）は、エラー検出回路が追加されるべき場所の適切な組を識別するために所定の基準に従ってランキングする等により分析される。これらのエラー検出回路は、次に、設計に加えられ得、そして範囲が期待されるものであるということをチェックするためにテストが反復されるであろう（エラー検出回路の挿入はそれ自体エラー伝播動作を変え得る）。これらの反復及び挿入ステップは、図４のステップ６４及び６６に示されている。
【００３１】
図５は、（例えば、粒子の衝突から帰結する）ソフト・エラーが生じ得る集積回路６８を図式的に示している。この集積回路に図式的に示されているのは、レジスタ・バンク７０、乗算器７２、シフタ７４及び加算器７６を備えたデータ経路である。データ経路７０、７２、７４、７６は、命令パイプライン７８にロードされそれぞれの命令セット・デコーダによってデコーディングされたプログラム命令の制御下でデータ処理動作を行なう。これらの命令セット・デコーダ８０、８２、８４の１つだけが、与えられた時刻において、状態レジスタ８６内に格納された集積回路６８の現在の処理モードに依存してアクティブ化される。この命令デコーダ８０、８２、８４は、データ経路７０、７２、７４、７６の要素を制御するために制御信号を生成する。
【００３２】
図５にはまた、集積回路６８からデバッグ・データを抽出しかつ集積回路６８にデバッグ・データを印加するために用いられ得るデバッグ制御ユニット８８が示されている。このようなデバッグ制御器８８は、通常は、例えば、状態レジスタ８６内のデバッグ制御ビットによって制御される集積回路６８のデバッグ・モードにおいてのみアクティブ化される。
【００３３】
隔離ゲート９０、９２、９４、９６、９８、１００は、集積回路６８内の種々の点において示されている。これらの隔離ゲートは、選択的に閉状態または開状態のいずれかにあるよう隔離ゲート制御器１０２によって制御される。閉状態においては、それらは、それらが関連している回路ユニットの出力信号に生じる何等かの変化を阻止するように働き、それに反して、開状態においては、それらはそのような変化を通す。隔離ゲート制御器１０２は、隔離ゲート９０、９２、９４、９６、９８、１００を制御するためのゲート制御信号を発生するために、状態レジスタ８から検出される現在の処理モード及びパイプライン７８から検出される現在実行しているプログラムを含む、集積回路６８の現在の状態に応答する。例として、命令デコーダ８０、８２、８４の１つだけが任意の与えられた時刻においてアクティブ化され、従って、他のデコーダからの出力信号は、隔離ゲート制御器１０２の制御下でそれらの隔離ゲート９０、９２、９４によって隔離され、それにより、もし何等かのソフト・エラーがアクティブでない命令デコーダ８０、８２、８４内で生じたならば、次に、それらは、集積回路残りのものに伝播して集積回路の動作にエラーを誘起するエラー信号を生成しない。もう１つの例として、シフタ７４からの出力は、もし集積回路６８の特定の処理状態が何等かのシフト動作に関連しないものである場合にシフタ７４からの出力が隔離され得るように、隔離ゲート９８による制御を受け、これにより、それは、任意の引き続く処理に不適切な影響を与えない。
【００３４】
デバッグ制御器８８からのデバッグ制御信号は、また、隔離ゲート制御を受け、その理由は、デバッグ制御信号が、集積回路６８の動作に特に強い影響力を有し得、デバッグ制御器８８内にソフト・エラーが生じた場合には大規模のエラーを生じ得るからである。
【００３５】
隔離ゲート制御のもう一つの例において、（処理モードに依存して）レジスタ・バンク７０内の主レジスタまたは影のレジスタを選択するために用いられるマルチプレクサ１０４及び１０６は、隔離ゲート１０８、１１０に受け得る選択信号で制御される。このように、もし処理モードが、影のレジスタがアクティブ化されてないということが既知のものであるならば、次に、マルチプレクサ１０４、１０６への選択入力は、隔離を受け得、それにより、ソフト・エラーはそれらを誘起せず、選択されたレジスタを不適切に変化させず、従って、誤った処理動作を生成しないであろう。
【図面の簡単な説明】
【００３６】
【図１】順次ロジックを形成しかつ組み合わせロジックにより相互接続されるレジスタを示す集積回路の部分を示す図である。
【図２】エラー注入及び分析のフレームワークの高レベルの概観を示す図である。
【図３】エラー注入及び分析の動作を概略的に示すフロー図である。
【図４】エラー検出回路の場所を選択するためにファンアウト特性が如何に用いられるかを概略的に示すフロー図である。
【図５】集積回路の現在の状態に依存して隔離ゲート制御器によって制御される隔離ゲートを組み込んだ集積回路を概略的に示す図である。
【符号の説明】
【００３７】
２００：試験台システム            ２０２：基準設計
２０４：テスト設計                ２０６：アプリケーション・コード
２０８：欠陥注入スケジューラ      ２１０：エラー・チェッキング及びロギング
【図１】
2009502037.tif 000003
【図２】
2009502037.tif 000004
【図３】
2009502037.tif 000005
【図４】
2009502037.tif 000006
【図５】
2009502037.tif 000007
【手続補正書】
【提出日】平成19年5月25日(2007.5.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
集積回路であって、
それぞれのデータ処理動作を行うよう動作可能な複数の回路ユニットと、
回路ユニット間の信号経路を制御するよう位置付けられ、閉状態においては回路ユニット間を通されているそれぞれの信号における変化を阻止するようかつ開状態においては回路ユニット間を通されるそれぞれの信号における変化を許容するよう動作可能な複数のエラー隔離ゲートと、
前記閉状態または前記開状態にあるよう前記複数のエラー隔離ゲートのそれぞれの１つを制御するために前記集積回路の現在の状態に応答する隔離ゲート制御器と、
を備え、前記隔離ゲート制御器は、少なくとも一つの回路ユニットが前記現在の状態において電力付勢されているエラー隔離された回路ユニットであるが、前記エラー隔離された回路ユニットからの１つまたは２つ以上の出力信号を決定するようにデータ処理動作を行うためには前記現在の状態において用いられていないように、前記エラー隔離ゲートを制御し、前記エラー隔離された回路ユニットは、前記エラー隔離された回路ユニット内に生じる信号エラーが他の回路ユニットに伝播することから阻止されるように前記閉状態においてエラー隔離ゲートによって包囲されている集積回路。
【請求項２】
前記信号エラーは、一時的なエラーである請求項１に記載の集積回路。
【請求項３】
前記現在の状態は、現在処理されている１つまたは２つ以上のプログラム命令に依存している請求項１及び２のいずれか１項に記載の集積回路。
【請求項４】
現在の状態は、前記集積回路の現在の処理モードに依存している請求項１、２または３のいずれか１項に記載の集積回路。
【請求項５】
前記エラー隔離ゲートの少なくとも１つは、マルチプレクサが前記エラー隔離された回路ユニットからの出力信号を送信のために選択しないように前記マルチプレクサの選択入力を制御するよう動作可能である請求項１乃至４のいずれか１項に記載の集積回路。
【請求項６】
前記エラー隔離ゲートの少なくとも１つは、前記エラー隔離された回路ユニットからの出力信号をラッチするよう動作可能である請求項１乃至５のいずれか１項に記載の集積回路。
【請求項７】
前記エラー隔離された回路は、
（ｉ）動作の現在のモードでは動作可能でない命令デコーダ；
（ｉｉ）動作の現在のモードでは動作可能でないデバッグ回路；及び
（ｉｉｉ）現在処理されている任意のプログラム命令のためには動作可能でないデータ経路の部分、
である請求項１乃至６のいずれか１項に記載の集積回路。
【請求項８】
集積回路内のエラー伝播を減少する方法であって、
複数の回路ユニットでそれぞれのデータ処理動作を行うステップと、
閉状態では回路ユニット間を通されているそれぞれの信号における変化を阻止し、開状態では回路ユニット間を通されているそれぞれの信号における変化を許容するよう動作可能に回路ユニット間に位置付けられた複数のエラー隔離ゲートで信号経路を制御するステップと、
前記集積回路の現在の状態に応答して、前記閉状態または前記開状態にあるように前記複数のエラー隔離ゲートのそれぞれの１つを制御するステップと、
を含み、前記エラー隔離ゲートは、少なくとも一つの回路ユニットが前記現在の状態において電力付勢されているエラー隔離された回路ユニットであるが、前記エラー隔離された回路ユニットからの１つまたは２つ以上の出力信号を決定するようにデータ処理動作を行うためには前記現在の状態において用いられていないように、制御され、前記エラー隔離された回路ユニットは、前記エラー隔離された回路ユニット内に生じる信号エラーが他の回路ユニットに伝播することから阻止されるように前記閉状態においてエラー隔離ゲートによって包囲されている方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
集積回路の設計内のすべてのノードを実質的に保護するために集積回路の設計を通してエラー検出及びエラー修正の機構を導入することが可能であり得る。しかしながら、このような方法は、該設計内のほとんどの素子ごとにエラー検出及びエラー修正機構を配置することに起因してゲート数が大いに増加するので、実際的ではない。
ＣＡＬＤＷＥＬＬ  Ｄ  Ｗ  ＥＴ  ＡＬ：“宇宙において商業的なマイクロコントローラを用いるためのミニマリスト・ハードウェア・アーキテクチャ”１９９７年１０月２６日（１９９７−１０−２６）、ＤＩＧＩＴＡＬ  ＡＶＯＩＮＩＣＳ  ＳＹＳＴＥＭ  ＣＯＮＦＥＲＥＮＣＥ，１９９７  １６ＴＨ  ＤＡＳＣ．，ＡＩＡＡ／ＩＥＥＥ  ＩＲＩＶＩＮＥ，ＣＡ，ＵＳＡ  ２６−３０  ＯＣＴ．１９９７，ＮＥＷ  ＹＯＲＫ，  ＮＹ，ＵＳＡ，ＩＥＥＥ，ＵＳ，ＰＡＧＥ（Ｓ）５２−２６，ＸＰ０１０２５６０６７  ＩＳＢＮ：０−７８０３−４１５０−３は、宇宙応用における商業的なマイクロコントローラを用いるためのハードウェアの考察を論じている。商業的な装置で始めるための動機付け及びそれらの使用に関連する重要性が提起されている。単一の事象の影響を緩和するためのソフトウェア対ハードウェアの投票体系の利点が論じられている。Ｉ／Ｏの強健さを改善するためのプロセス間通信の方法及び体系が提起されている。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
一態様に鑑みれば、本発明は、集積回路であって、
それぞれのデータ処理動作を行うよう動作可能な複数の回路ユニットと、
回路ユニット間の信号経路を制御するよう位置付けられ、閉状態においては回路ユニット間を通されているそれぞれの信号における変化を阻止するようかつ開状態においては回路ユニット間を通されるそれぞれの信号における変化を許容するよう動作可能な複数のエラー隔離ゲートと、
前記閉状態または前記開状態にあるよう前記複数のエラー隔離ゲートのそれぞれの１つを制御するために前記集積回路の現在の状態に応答する隔離ゲート制御器と、
を備え、前記隔離ゲート制御器は、少なくとも一つの回路ユニットが前記現在の状態において付勢されているエラー隔離された回路ユニットであるが、前記エラー隔離された回路ユニットからの１つまたは２つ以上の出力信号を決定するようにデータ処理動作を行うためには前記現在の状態において用いられていないように、前記エラー隔離ゲートを制御し、前記エラー隔離された回路ユニットは、前記エラー隔離された回路ユニット内に生じる信号エラーが他の回路ユニットに伝播することから阻止されるように前記閉状態においてエラー隔離ゲートによって包囲されている集積回路を提供する。
【国際調査報告】
2009502037.tif 000008
2009502037.tif 000009
2009502037.tif 000010
2009502037.tif 000011
2009502037.tif 000012