JP5486139B2 - ソフトエラーのクリティカリティの分類およびクリティカリティに基づくソフトエラーの緩和 - Google Patents

ソフトエラーのクリティカリティの分類およびクリティカリティに基づくソフトエラーの緩和 Download PDF

Info

Publication number
JP5486139B2
JP5486139B2 JP2013538733A JP2013538733A JP5486139B2 JP 5486139 B2 JP5486139 B2 JP 5486139B2 JP 2013538733 A JP2013538733 A JP 2013538733A JP 2013538733 A JP2013538733 A JP 2013538733A JP 5486139 B2 JP5486139 B2 JP 5486139B2
Authority
JP
Japan
Prior art keywords
circuit
criticality
corrupted
memory
criticality class
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.)
Active
Application number
JP2013538733A
Other languages
English (en)
Other versions
JP2014502452A (ja
Inventor
ロドリゲス,アルフレッド・エル
ポッスリー,ニコラス・ジェイ
ボシアーズ,ケビン
レシー,オースティン・エイチ
フセイン,ジャミール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of JP2014502452A publication Critical patent/JP2014502452A/ja
Application granted granted Critical
Publication of JP5486139B2 publication Critical patent/JP5486139B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

発明の分野
1つ以上の実施の形態は、一般に、集積回路におけるソフトエラーに関し、より特定的には、集積回路の記憶におけるソフトエラーの緩和に関する。
背景
集積回路の記憶ノードにおけるソフトエラーは、集積回路の状態の持続的な破損を引き起こす。集積回路の不適切な動作を防止するためには、ソフトエラーが検出され、分離され、訂正されるべきである。ソフトエラーの検出後に、集積回路は、ソフトエラーを分離および訂正するためにリセットまたは再設定され得る。しかしながら、集積回路のリセットは、全システム復帰にかなりの時間を必要とし得る。
ある用途においては、高い利用可能性が必要とされる。たとえば、通信用途においては、多くの場合、99.999%の利用可能性、または1年当りおよそ5分のダウン時間が必要とされる。いくつかの集積回路については、ソフトエラーは、許容されるダウン時間を超える量のシステムリセット時間を生じさせる。一般的に、ソフトエラーからの復帰の間のダウン時間を制限することが要求される。
本発明の1つ以上の実施の形態は、上記問題の1つ以上に対処し得る。
要約
ソフトエラーを緩和するためのシステムは、プログラマブルロジックおよび相互接続リソースと、設定メモリとを含むプログラマブル集積回路を備え、プログラマブルロジックおよび相互接続リソースは、設定メモリに記憶された設定データに応じてユーザ設計を実行し、システムは、プログラマブル集積回路に結合される不揮発性メモリをさらに備える。不揮発性メモリは、ユーザ設計のための設定データを記憶する。ユーザ設計は、三重冗長ソフトエラーマネジメント回路を含み、三重冗長ソフトエラーマネジメント回路は、エラー検出コードを用いて設定メモリ内の複数の記憶ビットのうちの破損した1つにおけるソフトエラーを繰り返しチェックするチェック回路と、チェック回路に結合される分類回路とを有し、分類回路は、各記憶ビットに対して複数のクリティカリティクラスのうちの1つを特定するマップを用いて、チェック回路に応答して破損した記憶ビットのクリティカリティクラスを決定するように構成され、三重冗長ソフトエラーマネジメント回路は、クリティカリティクラスに関連した複数の緩和技術を開始するための、分類回路に結合される訂正回路をさらに有し、訂正回路は、分類回路によって決定されたクリティカリティクラスに関連した緩和技術を開始するように構成される。
いくつかの実施の形態においては、第1の緩和技術は、冗長なロジックへのフェイルオーバーを実行することを含み、第2の緩和技術は、設定メモリを再初期化することを含み、第3の緩和技術は、破損した記憶ビットを訂正することを含む。
マップは、記憶ビットの1つおよび複数の状態の1つの各組み合わせに対するクリティカリティクラスのそれぞれの1つを特定し得る。分類回路は、破損した記憶ビットおよび分類回路の状態レジスタの状態の組み合わせに対してマップにおいて特定されるそれぞれのクリティカリティクラスを決定するようにさらに構成され得る。訂正回路は、それぞれのクリティカリティクラスの各々に関連した緩和技術を開始するようにさらに構成され得る。
訂正回路は、破損した記憶ビットに対してマップにおいて特定されたクリティカリティクラスに関連する緩和技術に応答して破損した記憶ビットを訂正するようにさらに構成され得る。訂正回路は、エラー訂正コードであるエラー検出コードを用いて破損した記憶ビットを訂正するようにさらに構成され得る。
マップは、たとえば、設定メモリ内、または不揮発性メモリ内に記憶され得る。チェック回路は、エラー検出および訂正コードを用いて記憶ビットを読み取るとともにチェックすることによってソフトエラーを繰り返しチェックし得る。
もう1つの実施の形態においては、設定メモリを含む集積回路におけるソフトエラーを緩和する方法は、エラー検出コードを用いて設定メモリ内の複数の記憶ビットの破損した1つにおけるソフトエラーを繰り返しチェックするステップと、各記憶ビットに対する複数のクリティカリティクラスの1つを特定する記憶されたマップを用いて破損した記憶ビットのクリティカリティクラスを決定するステップと、複数の緩和技術の1つを開始するステップとを含み、開始された緩和技術は、破損した記憶ビットのクリティカリティクラスに関連する。
第1の緩和技術は、冗長なロジックへのフェイルオーバーを実行することを含み得るとともに、第2の緩和技術は、設定メモリを再初期化することを含み得るとともに、第3の緩和技術は、破損した記憶ビットを訂正することを含み得る。第4の緩和技術は、ソフトエラーの通知を送信するとともに、破損した記憶ビットを訂正することを含み得るとともに、第5の緩和技術は、ソフトエラーの通知を送信し、そうでなければ破損した記憶ビットを無視することを含み得る。
マップは、記憶ビットの1つおよび複数の状態の1つの各組み合わせに対するそれぞれのクリティカリティクラスの1つを特定し得る。設定するステップは、破損した記憶ビットおよび状態レジスタの状態の組み合わせに対してマップにおいて特定されたそれぞれのクリティカリティクラスを決定するステップを含み得る。開始するステップは、それぞれのクリティカリティクラスの各々に関連した緩和技術を開始するステップを含み得る。
マップは、集積回路の外部のメモリ、または集積回路内のメモリに記憶され得る。チェック回路は、エラー検出および訂正コードを用いて記憶ビットを読み取るとともにチェックすることによってソフトエラーを繰り返しチェックし得る。
さらにもう1つの実施の形態においては、通信製品は、設定メモリを有する集積回路と、集積回路に結合され、エラー検出コードを用いて設定メモリ内の複数の記憶ビットの破損した1つにおけるソフトエラーを繰り返しチェックするチェック回路と、チェック回路に結合される分類回路とを備え、分類回路は、各記憶ビットに対して複数のクリティカリティクラスの1つを特定するマップを用いて、チェック回路に応答して破損した記憶ビットのクリティカリティクラスを決定するように構成され、通信製品は、クリティカリティクラスに関連した複数の緩和技術を開始するための、分類回路に結合される訂正回路をさらに備える。訂正回路は、分類回路によって決定されたクリティカリティクラスに関連した緩和技術を開始するように構成される。
もう1つの実施の形態においては、方法は、集積回路におけるソフトエラーを緩和するために提供される。マップは、メモリに記憶され、上記マップは、集積回路における各記憶ビットに対するクリティカリティクラスを特定する。緩和技術は、各クリティカリティクラスに関連する。ソフトエラーは、記憶ビットの破損した1つにおいて検出される。破損した記憶ビットに対してマップにおいて特定されたクリティカリティクラスに関連する緩和技術が実行される。
もう1つの実施の形態においては、方法は、プログラマブル集積回路の設定メモリにおけるソフトエラーを緩和するために提供される。クリティカリティクラスは、ユーザ設計の設計記述(design description)の各コードブロックに対して指定される。緩和技術は、各クリティカリティクラスに関連する。仕様(specification)は、設計記述から統合(synthesized)される。統合された仕様は、プログラマブル集積回路のプログラマブルロジックおよび相互接続リソースにおけるユーザ設計の実行を特定する。仕様は、各コードブロックのクリティカリティクラスが、実行においてコードブロックを実行するプログラマブルロジックおよび相互接続リソースのサブセットのクリティカリティクラスであることを特定する。マップは、仕様から生成される。設定メモリの記憶ビットは、プログラマブルロジックおよび相互接続リソースを構成する。マップは、各コードブロックを実行するサブセットのクリティカリティクラスが、サブセットにおいてプログラマブルロジックおよび相互接続リソースを構成する各記憶ビットのクリティカリティクラスであることを特定する。上記マップは、記憶される。ソフトエラーは、記憶ビットの破損した1つにおいて検出される。破損した記憶ビットに対してマップにおいて特定されたクリティカリティクラスに関連する緩和技術が実行される。
さらにもう1つの実施の形態においては、ソフトエラーを緩和するためのシステムが提供される。システムは、プログラマブル集積回路と、不揮発性メモリとを備える。プログラマブル集積回路は、プログラマブルロジックおよび相互接続リソースと、設定メモリとを含む。プログラマブルロジックおよび相互接続リソースは、設定メモリに記憶された設定データに応じてユーザ設計を実行する。不揮発性メモリは、ユーザ設計のための設定データを記憶する。ユーザ設計は、三重冗長ソフトエラーマネジメント回路を含む。上記ソフトエラーマネジメント回路は、チェック回路と、分類回路と、訂正回路とを有する。チェック回路は、エラー検出コードを用いて設定メモリ内の複数の記憶ビットのうちの破損した1つにおけるソフトエラーを繰り返しチェックする。分類回路は、各記憶ビットに対して複数のクリティカリティクラスのうちの1つを特定するマップを用いて、チェック回路に応答して破損した記憶ビットのクリティカリティクラスを決定する。訂正回路は、クリティカリティクラスに関連した緩和技術を開始し、上記訂正回路は、破損した記憶ビットに対してマップにおいて特定されたクリティカリティクラスに関連した緩和技術を開始する。
様々な他の実施の形態が以下の詳細な説明および特許請求の範囲に記載されていることが理解されるであろう。
開示された実施の形態の様々な局面および利点は、以下の詳細な説明の検討および図面への参照によって明らかになるであろう。
集積回路におけるソフトエラーを緩和するためのプロセスのフローチャートである。 ソフトエラーを緩和するように構成可能なプログラマブル集積回路の一例のブロック図である。 プログラマブル集積回路の設定メモリにおけるソフトエラーを緩和するためのシステムのブロック図である。
詳細な説明
図1は、集積回路におけるソフトエラーを緩和するためのプロセスのフローチャートである。あり得るソフトエラーは、クリティカリティクラスに分離され、検出された各ソフトエラーのクリティカリティクラスに基づいて適当な緩和技術が選択されるとともに実行される。いくつかの検出されたソフトエラーは、集積回路の全リセットよりも厳しくない緩和技術で扱われるので、複数のソフトエラーの緩和に必要とされるダウン時間が低減される。
1つの実施の形態においては、ブロック102〜116の1つ以上のプロセスは、所望の動作を実行するように特別に適合されたソフトウェアを実行する1つ以上のプロセッサによって実行される。ブロック102,106は、任意的である。なぜなら、クリティカリティクラスは、ブロック104の統合前にブロック102において、またはブロック104の統合後にブロック106において、指定され得るからである。図1に示される他のブロックは、いくつかの実施の形態においても任意的であり得る。図1は、単なる1つの例示的な実施の形態を詳細に説明することが意図される。
ブロック102においては、クリティカリティクラスは、ユーザ設計の設計記述の各コードブロックに対して指定される。1つの実施の形態においては、回路設計者は、ハードウェア記述言語で設計記述を特定し、回路設計者は、たとえばプラグマ(pragmas)などの1つ以上の指令を設計記述に挿入して、各コードブロックのクリティカリティクラスを宣言する。「プラグマ」という用語は、明細書の以下の部分において用いられ、一般に指令を指すことが意図される。1つの実施の形態においては、設計記述は、ブロックのインスタンスの階層を含み、プラグマは、階層における個別のインスタンスへのクリティカリティクラスを割り当て得る。各コードブロックは、階層におけるコードブロックを含む第1のインスタンスのクリティカリティクラス、またはそのような包括的なインスタンスがない場合のデフォルトクリティカリティクラスを有する。もう1つの例においては、プラグマは、ブロックのインスタンスの全てが同一のクリティカリティクラスを有するように、階層におけるブロックのクリティカリティクラスを特定する。さらにもう1つの例においては、プラグマは、各コードブロックの範囲を明示的に特定するコメントであり、コードブロックは、後続の設計記述のクリティカリティクラスを特定する開始コメントとともに始まるコードブロック、および任意の終了コードブロックのクリティカリティクラスを再開する終了コメントとともに終わるコードブロックを有する。この例においては、プラグマは、設計記述における単一のステートメントの細かさ(granularity)でコードブロックを特定する。
ブロック104において、集積回路の仕様は、設計記述から統合される。1つの実施の形態においては、仕様は、ユーザ設計を実行する基本ゲート(elementary gate)のネットリストを特定する。もう1つの実施の形態においては、仕様は、集積回路における基本ゲートの配置、および基本ゲート間の相互接続のルーティングを追加的に特定する。プログラマブル集積回路におけるユーザ設計の1つの実行例について、仕様は、各基本ゲートを実行する具体的なプログラマブルロジックリソース、および実行された基本ゲート間の相互接続を実行する具体的なプログラマブル相互接続リソースを特定する。
ブロック102にてクリティカリティクラスを特定する実施の形態においては、クリティカリティクラスは、ブロック104にて統合される仕様に保存される。1つの例においては、各記憶ビットは、記憶ビットが実行を助けるコードブロックのクリティカリティクラスを受け継ぐ。したがって、仕様は、記憶ビットが統合されるコードブロックのクリティカリティクラスである、各記憶ビットのクリティカリティクラスを特定する。1つの実施の形態においては、異なるクリティカリティクラスを有する複数のコードブロックによって規定される記憶ビットは、これらのコードブロックに対する最も厳しいクリティカリティクラスが割り当てられる。プログラマブル集積回路におけるユーザ設計の実行例について、各プログラマブルロジックおよび相互接続リソースは、プログラマブルリソースが実行を助けるコードブロックのクリティカリティクラスを受け継ぐ。さらに、各設定記憶ビットは、プログラマブルリソースを設定し、設定ビットのクリティカリティクラスは、プログラマブルリソースのクリティカリティクラスである。
ブロック106において、統合された仕様は部分に分けられ、各部分は、クリティカリティクラスが割り当てられる。1つの実施の形態においては、統合されたネットリストにおける各基本ゲートは、クリティカリティクラスが割り当てられる。もう1つの実施の形態においては、ネットリストのグラフィック描画は様々な部分にグラフィカルに分けられ、クリティカリティクラスの1つは各部分へ割り当てられる。プログラマブル集積回路において実行されるユーザ設計のためのさらにもう1つの実施の形態においては、グラフィカルレイアウトは、プログラマブル集積回路のプログラマブルロジックおよび相互接続リソースにおいて実行されるユーザ設計を表わし、グラフィカルレイアウトは、各々にクリティカリティクラスが割り当てられる部分にグラフィカルに分けられる。
ある実施の形態においては、ブロック102にて指定されたクリティカリティクラスは、ブロック106にて修正される。したがって、任意的なブロック102,106は、相互排他的ではない。1つの実施の形態においては、ブロック104の統合は、ブロック102にて指定されたコードブロックを、ブロック106にて修正され得る対応する部分にマッピングする。もう1つの実施の形態においては、ブロック106の部分は、プログラマブル集積回路のプログラマブルロジックおよび相互接続リソースであり、各個別のプログラマブルリソースのクリティカリティクラスは、ブロック106にて特定または修正され得る。
1つの実施の形態においては、クリティカリティクラスは、記憶ビットのグループまたはフレームへ割り当てられる。あるプログラマブル相互接続回路においてユーザ設計を実行するためには、設定データのフレームは、プログラマブル集積回路の設定メモリを設定し、設定データの各フレームは、設定メモリにおける記憶ビットの対応するフレームを初期化する。各フレームにおける記憶ビットは、異なるクリティカリティクラスを有し得るが、記憶ビットのフレームの全体のクリティカリティクラスは、フレームにおける個別の記憶ビットの最も厳しいクリティカリティクラスである。フレームにおけるある記憶ビットは、必要であるよりも厳しいクリティカリティクラスが割り当てられ得るが、クリティカリティクラスを特定するデータは、劇的に低減される。なぜなら、記憶ビットごとに1つのクリティカリティクラスが特定される代わりに、フレームごとに1つのクリティカリティクラスが特定されるからである。したがって、任意的なブロック108において、各フレームに対してクリティカリティクラスが決定され、このクリティカリティクラスは、フレームにおける記憶ビットが統合されるコードブロックのクリティカリティクラスの厳しい1つである。
いくつかの記憶ビットに必要であるよりも厳しいクリティカリティクラスを与えることのインパクトを低減するために、仕様は、ブロック104にて統合されて、異なる設定フレームに対するプログラマブルリソースにおいて異なるクリティカリティクラスでコードブロックを優先的に実行し得る。異なるクリティカリティクラスを有するコードブロックが、単一の設定フレームにおいて一緒にまとめられなければならないときは、まとめられたクリティカリティクラスは、優先的に類似する厳しさを有する。
ブロック110にて、マップは、統合された仕様から生成され、マップは、集積回路における各記憶ビットのクリティカリティクラスを特定する。1つの実施の形態においては、マップは、各記憶ビットのクリティカリティクラスが、記憶ビットが統合されるコードブロックのクリティカリティクラスであることを特定する。もう1つの実施の形態においては、各記憶ビットのクリティカリティクラスは、ブロック108にて決定されたように、記憶ビットを含むフレームのクリティカリティクラスである。
ブロック112にて、マップは、集積回路内のメモリまたは集積回路外のメモリのようなメモリに記憶される。1つの実施の形態においては、テーブルは、記憶ビットのアドレスによってインデックスを付けられて記憶され、テーブルは、記憶ビットのアドレスにて各記憶ビットのクリティカリティクラスを含む。プログラマブル集積回路におけるユーザ設計の実行例について、各設定記憶ビットに対するアドレスは、設定記憶ビットを含むフレームのアドレスを含む。
ブロック114にて、ソフトエラーは、破損した記憶ビットにおいて検出され、アドレスは、破損した記憶ビットに対して決定される。1つの実施の形態においては、チェッカは、記憶ビットのグループまたはフレームを繰り返し読み取るとともに、エラー検出コードを用いてそれらをチェックし、チェッカは、破損した記憶ビットを含むグループまたはフレームのアドレスを、場合によっては、フレームにおいて破損した具体的な記憶ビットのオフセットアドレスを決定する。
ブロック116にて、記憶されたマップにおいて破損した記憶ビットに対して特定されたクリティカリティクラスと関連する緩和技術が実行される。1つの実施の形態においては、マップは、記憶ビットのアドレスによってインデックスを付されたテーブルであり、クリティカリティクラスは、破損した記憶ビットのアドレスにてテーブルから読み取られる。
記憶ビットは、各記憶ビットの破損の結果の厳しさに従って、様々なクリティカリティクラスへ分類される。各緩和技術は、各クリティカリティクラスと関連する。1つの実施の形態においては、緩和技術は、ソフトエラーの通知を送信すること、またはソフトエラーを特定する情報の記録を取ることである。そのような緩和技術は、冗長なロジックへのフェイルオーバーを実行し、続いて破損した記憶ビットを訂正するもの、いくつかまたは全ての記憶ビットをバックアップ状態から再初期化するもの、破損した記憶ビットを訂正して、集積回路をリセットするもの、破損した記憶ビットを訂正して、破損した記憶ビットを生成するコードブロックに対応する集積回路の一部をリセットするもの、またはいかなるリセットも行うことなく破損した記憶ビットを訂正するもののような様々なエラー訂正技術と組み合わせられ得る。記憶ビットの破損がいかなる有害な結果も引き起こさない場合は、緩和技術は、破損した記憶ビットを完全に無視し得る、または単にこのソフトエラーを特定する情報の記録を取り得る。破損した記憶ビットの訂正は、1つの実施の形態におけるエラー検出および訂正コードを用いて遂行される。
図2は、ソフトエラーを緩和するように構成可能なプログラマブル集積回路の一例のブロック図である。先に説明されたように、ソフトエラーを緩和するためのシステムは、プログラマブル集積回路のプログラマブルロジックおよび相互接続リソースにおいて実行され得る。
FPGAは、1つの配列の中にいくつかの異なるタイプのプログラマブルロジックブロックを含み得る。たとえば、図2は、多数の異なるプログラマブルタイル(programmable tile)を含むFPGA構造(200)を説明する。多数の異なるプログラマブルタイルは、マルチギガビットトランシーバ(multi-gigabit transceiver:MGT)201と、コンフィギュラブルロジックブロック(configurable logic block:CLB)202と、ランダムアクセスメモリブロック(random access memory block:BRAM)203と、入出力ブロック(input/output block:IOB)204と、設定およびクロッキングロジック(CONFIG/CLOCK)205と、デジタルシグナルプロセッシングブロック(digital signal processing block:DSP)206と、たとえばクロックポートなどの特別な入出力ブロック(specialized input/output block:I/O)207と、デジタルクロックマネージャ、アナログ−デジタルコンバータ、システムモニタリングロジックなどのような他のプログラマブルロジック208とを含む。いくつかのFPGAは、専用のプロセッサブロック(dedicated processor block:PROC)、内部再設定ポート、および外部再設定ポート(図示せず)も含む。
いくつかのFPGAにおいては、各プログラマブルタイルは、各隣接するタイルにおいて対応する相互接続要素への、および対応する相互接続要素からの標準化された接続を有するプログラマブル相互接続要素(programmable interconnect element:INT)211を含む。したがって、総合すれば、プログラマブル相互接続要素は、図示されたFPGAに対するプログラマブル相互接続構造を実現する。図2の上部に含まれる例によって示されるように、プログラマブル相互接続要素INT211は、同一のタイル内のプログラマブルロジック要素への、およびプログラマブルロジック要素からの接続も含む。
たとえば、CLB202は、単一のプログラマブル相互接続要素INT211をユーザロジックに加えて実行するようにプログラムされ得るコンフィギュラブルロジック要素(configurable logic element:CLE)212を含み得る。BRAM203は、1つ以上のプログラマブル相互接続要素に加えて、BRAMロジック要素(BRAM logic element:BRL)213を含み得る。典型的には、タイルに含まれる相互接続要素の数は、タイルの高さに従う。図示された実施の形態においては、BRAMタイルは、5つのCLBと同一の高さを有するが、他の数(たとえば、4つ)も用いられ得る。DSPタイル206は、適当な数のプログラマブル相互接続要素に加えて、DSPロジック要素(DSP logic element:DSPL)214を含み得る。IOB204は、たとえば、プログラマブル相互接続要素INT211の1つのインスタンスに加えて、入出力ロジック要素(input/output logic element:IOL)215の2つのインスタンスを含み得る。当業者に明らかなように、たとえばI/Oロジック要素215へ接続される実際のI/Oパッドは、様々な図示されたロジックブロックの上に積層された金属を用いて製造され、典型的には、入出力ロジック要素215の領域に限定されない。
図示された実施の形態においては、ダイの中心の近くのコラム状の領域(図2において影で示される)は、設定、クロック、および他の制御ロジックのために用いられる。このコラム状の領域から伸びる水平な領域209は、FPGAの幅に亘ってクロック信号および設定信号を分配するように用いられる。
図2に説明される構造を利用するいくつかのFPGAは、FPGAの大部分を作る通常のコラム状の構造を分断する追加的なロジックブロックを含む。追加的なロジックブロックは、プログラマブルブロックおよび/または専用のロジックとされ得る。たとえば、図2に示されるプロセッサブロック(processor block:PROC)210は、CLBおよびBRAMのいくつかのコラムに及ぶ。
図2は単に例示的なFPGA構造を説明することが意図されることに留意すべきである。コラムにおけるロジックブロックの数、コラムの相対幅、コラムの数および順序、コラムに含まれるロジックブロックのタイプ、ロジックブロックの相対サイズ、および図2の上部に含まれる相互接続/ロジックの実行例は、単に例示的である。たとえば、実際のFPGAにおいては、CLBの1つよりも多い隣接するコラムは、典型的には、CLBが現れるところのどこにでも含まれ、ユーザロジックの効果的な実行を容易にする。
図3は、プログラマブル集積回路302の設定メモリにおけるソフトエラーを緩和するためのシステムのブロック図である。プログラマブル集積回路302は、不揮発性メモリ306からの設定データ304を持つユーザ設計を実行するように構成される。
プログラマブル集積回路302は、プログラマブルロジックリソース308,310〜312,314,316〜318と、プログラマブル相互接続リソース320,322〜324,326,328〜330と含む。プログラマブルリソース308,310〜312,320,322〜324は、設定メモリのフレーム332内の記憶ビットによって設定される。同様に、プログラマブルリソース314,316〜318,326,328〜330は、設定メモリフレーム(configuration memory frame:CMF)334内の記憶ビットによって設定される。ユーザ設計を実行するプログラマブル集積回路302の設定の間に、設定メモリフレーム332〜334は、不揮発性メモリ306に記憶された設定データ304の対応するフレームを有する設定ポート336を介して初期化される。
不揮発性メモリ306は、ユーザ設計のための設定データ304を記憶する。設定データ304は、ソフトエラーマネージャ338およびユーザ設計のコードブロック340〜342を実行するための設定データを含む。関連するコードブロック340〜342は、クリティカリティクラスを指定される。コードブロック340を実行するプログラマブルリソース308,310〜312,314,316〜318,320,322〜324,326,328〜330のサブセットは、コードブロック340の指定されたクリティカリティクラス有し、プログラマブルリソースのこのサブセットを設定する設定メモリフレーム332〜334からの記憶ビットも、コードブロック340の指定されたクリティカリティクラスを有する。同様に、プログラマブルリソース308,310〜312,314,316〜318,320,322〜324,326,328〜330を設定して、コードブロック342を実行する設定メモリフレーム332〜334内の記憶ビットは、コードブロック342の指定されたクリティカリティクラスを有する。
1つの実施の形態においては、設定データ304において特定されたソフトエラーマネージャ338は、厳しいクリティカリティクラスを有し、関連する緩和技術は、設定データ304を有するプログラマブル集積回路302の再設定を含み、続いて、プログラマブル集積回路302がリセットされる。もう1つの実施の形態においては、設定データ304において特定されたソフトエラーマネージャ338は、プログラマブルリソース308,310〜312,314,316〜318,320,322〜324,326,328〜330を設定してソフトエラーマネージャ338を実行する、設定メモリフレーム332〜334内の記憶ビットを破損するソフトエラーからの深刻な結果を防止するための三層冗長である。三重冗長ソフトエラーマネージャ338は、投票回路(voting circuit)および3つのコピー、または設定データ304において特定される回路344,346,348のような各ロジック回路のインスタンスを含む。回路の1つのインスタンスの出力は回路の他の2つのインスタンスの出力に一致しないが、他の2つのインスタンスの出力が一致するときに、投票回路は、一致する2つのインスタンスから一致する出力を選ぶ。したがって、回路の1つのインスタンスへ限定されるフェイルは、3重冗長ソフトエラーマネージャに影響しない。さらに、投票回路は、ソフトエラーマネージャを冗長投票回路における多数のフェイルによって影響されないように保持する冗長投票回路とされ得る。
設定データ304において特定されるソフトエラーマネージャ338は、1つの実施の形態におけるチェック回路344、分類回路346、および訂正回路348のための設定データを含む。設定データ304において特定されるチェック回路344は、エラー検出コードを用いて設定メモリフレーム332,334内の記憶ビットを破損するソフトエラーを繰り返しチェックする。設定データ304において特定される分類回路346は、各記憶ビットに対するクリティカリティクラスを特定するマップテーブル350または352を用いて破損した記憶ビットのクリティカリティクラスを決定する。設定データ304において特定される訂正回路348は、マップテーブル350または352において破損した記憶ビットに対して特定されたクリティカリティクラスに関連する緩和技術を選択するとともに開始する。特定の訂正回路348は、たとえば、エラー訂正コードを用いて破損した記憶ビットを訂正する。1つの実施の形態においては、エラー訂正コードは、特定のチェック回路344のエラー検出コードでもある。
1つの実施の形態においては、プログラマブル集積回路302は、設定メモリフレーム332〜334の破損をチェックする専用のプログラマブルチェッカロジックリソース(programmable checker logic resource:CC)354を含む。この実施の形態においては、設定データ304は、専用のチェッカリソース354における特定のチェック回路344を実行するための設定データを含む。この設定データは、設定メモリフレーム332〜334に亘る周期的な冗長チェックの期待値を含み、またはエラー検出コードを用いた設定メモリフレーム332〜334の連続的なチェックを可能とする。設定メモリフレーム332〜334の各々は、プログラマブルリソース308,310〜312,314,316〜318,320,322〜324,326,328〜330を設定しない追加的な記憶ビットを含み、これらの追加的な記憶ビットは、エラー検出コードのチェックビットを記憶するために専用とされ得る。その設定に従って、チェッカリソース354は、周期的な冗長チェックおよび/またはエラー検出コードを用いて設定メモリフレーム332〜334を連続的にチェックし得る。
専用のプログラマブルチェッカリソース354を有するこの実施の形態においては、特定の分類回路346および特定の訂正回路348は、プログラマブルリソース308,310〜312,314,316〜318,320,322〜324,326,328〜330のサブセットにおいて実行される。特定の分類回路346および特定の訂正回路348を実行するための設定メモリフレーム332〜334の部分の破損のインパクトを制限するために、特定の分類回路346および特定の訂正回路348は、三重冗長回路とされ得る。
1つの実施の形態においては、プログラマブル集積回路302における特定の分類回路346の実行は、不揮発性メモリ306内のマップテーブル352にアクセスして、特定のチェック回路344によって検出されたソフトエラーのクリティカリティクラスを決定する。特定の分類回路346は、特定のチェック回路344からの破損した記憶ビットのアドレスを用いてマップテーブル352にインデックスを付する。マップテーブル352は、設定メモリフレーム332〜334に対する各マスク356〜358を含む。ソフトエラーの検出時に、特定のチェック回路344は、破損した記憶ビットに対するフレームアドレス、およびフレーム内の破損した記憶ビットのオフセットアドレス、またはフレーム内のどの記憶ビットが破損したのかを示すベクトルを提供する。特定の分類回路346は、マップテーブル352からフレームアドレスに対するマスクを読み取る。特定の分類回路346がこのマスクのオフセットアドレスにてクリティカリティクラスを選択するか、または特定の分類回路346がベクトルでこのマスクをマスクして、クリティカリティクラスを決定する。2つのクリティカリティクラスを有する例について、特定の分類回路346は、非ゼロマスキング結果に対して厳しいクリティカリティクラスを選択し、ゼロのマスキング結果に対して他のクリティカリティクラスを選択する。特定の訂正回路348は、選択されたクリティカリティクラスに関連する緩和技術を実行する。
もう1つの実施の形態においては、マップテーブルは、ソフトエラーを緩和するためのシステム内のもう1つのメモリ(図示せず)において記憶される。
さらにもう1つの実施の形態においては、マップテーブル350は、ユーザ設計のための設定データ304内に記憶される。ユーザ設計の実行の仕様は、ユーザ設計の設計記述から統合される。ユーザ設計の設計記述は、マップテーブルを特定し、マップテーブルに対する初期化されていない内容を特定するソフトエラーマネージャを含む。統合された仕様は、図2の1つ以上のBRAM203のようなプログラマブル集積回路302の1つ以上のメモリにおいて初期化されていないマップテーブルを実行する。マップテーブルに含まれるクリティカリティクラスは、統合された仕様から生成される。設定データ304は、統合された仕様からも生成され、これは、生成されたクリティカリティクラスをマップテーブル350に統合することを含む。したがって、プログラマブル集積回路320が設定データ304で設定されるときに、プログラマブル集積回路302のあるメモリは、マップテーブル350から指定されたクリティカリティクラスで初期化される。
設定メモリフレーム332〜334内の記憶ビットは、各記憶ビットの破損の結果の厳しさに従って、様々なクリティカリティクラスへ分類される。各緩和技術は、各クリティカリティクラスに関連する。1つの実施の形態においては、緩和技術は、ソフトエラーの通知を送信すること、またはソフトエラーを特定する情報の記録を取ることである。また、そのような緩和技術は、プログラマブルリソース308,310,312,314,316,318,320,322,324,326,328〜330を再設定するために設定メモリフレーム332〜334を再初期化し、それから、プログラマブル集積回路302をリセットすること、破損した記憶ビットに対応するコードブロックに対するプログラマブルロジックおよび相互接続リソースを設定する各設定メモリフレーム332〜334を再初期化し、それから、プログラマブル集積回路をリセットすること、破損した記憶ビットを訂正して、破損した記憶ビットに対応するコードブロックに対するプログラマブルロジックおよび相互接続リソースをリセットすること、および破損した記憶ビットを単に訂正することのような様々な訂正技術と組み合わせられ得る。
1つの実施の形態においては、分類回路346に対する設定データ304は、プログラマブルリソース308,310,312,314,316,318,320,322,324,326,328〜330における特定の分類回路346とともに実行される状態レジスタ360を含む。代替的には、コードブロック340は、状態レジスタを含む。1つの実施の形態においては、コードブロック342は、通常は、厳しいクリティカリティクラスを有し、状態レジスタ360は、コードブロック342がクリティカルデータ上で動作しないときを示す。特定のチェック回路344がソフトエラーを検出したときに、特定の分類回路346は、状態レジスタ360の現在の値が与えられるソフトエラーに対する適当なクリティカリティクラスを決定する。
1つの実施の形態においては、マップテーブル350または352は、メモリフレーム332〜334内の記憶ビット設定の1つおよび状態レジスタ360の各可能な状態の各組み合わせに対する各クリティカリティクラスを特定する。分類回路は、破損した記憶ビットおよび状態レジスタ360の現在の状態の組み合わせに対してマップテーブル350または352における特定のクリティカリティクラスを決定する。たとえば、破損した記憶ビットがクリティカルデータ上で現在動作しているプログラマブルリソースを設定することを、状態レジスタ360の現在の状態が示す場合、分類回路は、クリティカリティクラスが厳しいと決定する。破損した記憶ビットがアイドルまたはクリティカルデータ上で現在動作していないプログラマブルリソースを設定することを、状態レジスタ360の現在の状態が示す場合、分類回路は、クリティカリティクラスが厳しくないと決定する。1つの実施の形態においては、破損した記憶ビットのアドレスは、マップテーブル352におけるマスク356〜358のうちの1つを選択し、状態レジスタ360の現在の値は、選択されたマスクに埋め込まれた適当なクリティカリティクラスを選択する。
1つの実施の形態には、1つよりも多い状態レジスタがある。1つの例において、マップテーブル350または352は、メモリフレーム332〜334内の設定内の各記憶ビットに対する識別値を含み、識別値は、状態レジスタ360または他の状態レジスタを選択する。プラグマは、各コードブロック340〜342に関連する状態レジスタ、および状態レジスタの可能な値に対するクリティカリティクラスを特定する。特定のチェック回路344がソフトエラーを検出したときに、特定の分類回路346は、ソフトエラーによって影響されるコードブロックの現在の動作状態に対する適当なクリティカリティクラスを決定し得る。
本発明の実施の形態は、集積回路におけるソフトエラーを緩和するための様々な方法およびシステムに利用可能であると考えられる。他の局面および実施の形態は、明細書の考慮および本明細書に開示された実施の形態の実行から当業者に明らかになるであろう。実施の形態は、ソフトウェアを実行するように構成された1つ以上のプロセッサとして、特定用途向け集積回路(application specific integrated circuit:ASIC)として、またはプログラマブル論理回路(programmable logic device)上のロジックとして実行され得る。明細書および説明された実施の形態は、単なる例示であると考慮され、本発明の本当の範囲は、以下の特許請求の範囲によって示されることが意図される。

Claims (14)

  1. ソフトエラーを緩和するためのシステムであって、
    プログラマブルロジックおよび相互接続リソースと、設定メモリとを含むプログラマブル集積回路を備え、
    前記プログラマブルロジックおよび相互接続リソースは、前記設定メモリに記憶された設定データに応じてユーザ設計を実行し、
    前記システムは、
    前記プログラマブル集積回路に結合される不揮発性メモリをさらに備え、
    前記不揮発性メモリは、前記ユーザ設計のための前記設定データを記憶し、
    前記ユーザ設計は、三重冗長ソフトエラーマネジメント回路を含み、
    前記三重冗長ソフトエラーマネジメント回路は、
    エラー検出コードを用いて前記設定メモリ内の複数の記憶ビットのうちの破損した1つにおける前記ソフトエラーを繰り返しチェックするチェック回路を有し、
    各記憶ビットは、前記ユーザ設計の複数のコードブロックのうちの1つのコードブロックの部分を実行し、
    前記三重冗長ソフトエラーマネジメント回路は、
    状態レジスタをさらに有し、
    前記状態レジスタは、前記プログラマブル集積回路において実行される複数のコードブロックのうちの1つのコードブロックがクリティカルデータ上で動作しているか否かを示し、
    前記三重冗長ソフトエラーマネジメント回路は、
    前記チェック回路に結合される分類回路をさらに有し、
    前記分類回路は、前記状態レジスタの状態と、各記憶ビットに対して前記状態レジスタの可能な状態に対するそれぞれのクリティカリティクラスを特定するマップとを用いて、前記チェック回路に応答して前記破損した記憶ビットの前記クリティカリティクラスを決定するように構成され、
    前記三重冗長ソフトエラーマネジメント回路は、
    前記クリティカリティクラスに関連した複数の緩和技術を開始するための、前記分類回路に結合される訂正回路をさらに有し、
    前記訂正回路は、前記分類回路によって決定された前記クリティカリティクラスに関連した前記緩和技術を開始するように構成される、システム。
  2. 第1の前記緩和技術は、冗長なロジックへのフェイルオーバーを実行することを含み、
    第2の前記緩和技術は、前記設定メモリを再初期化することを含み、
    第3の前記緩和技術は、前記破損した記憶ビットを訂正することを含む、請求項1に記載のシステム。
  3. 前記訂正回路は、前記破損した記憶ビットに対して前記マップにおいて特定された前記クリティカリティクラスに関連する前記緩和技術に応答して前記破損した記憶ビットを訂正するようにさらに構成され、
    前記訂正回路は、エラー訂正コードである前記エラー検出コードを用いて前記破損した記憶ビットを訂正するようにさらに構成される、請求項1または2に記載のシステム。
  4. 前記マップは、前記設定メモリ内に記憶される、請求項1または2に記載のシステム。
  5. 前記マップは、前記不揮発性メモリ内に記憶される、請求項1または2に記載のシステム。
  6. 前記チェック回路は、エラー検出および訂正コードを用いて前記記憶ビットを読み取るとともにチェックすることによって前記ソフトエラーを繰り返しチェックする、請求項1または2に記載のシステム。
  7. 設定メモリを含む集積回路におけるソフトエラーを緩和する方法であって、
    設計記述から前記集積回路の仕様を統合するステップと、
    各プラグマがコードブロックの1つのクリティカリティクラスを宣言する、前記設計記述における前記コードブロックに関連するプラグマに対して、前記統合された仕様における前記クリティカリティクラスを保存するステップと、
    前記統合された仕様からマップを生成するステップとを含み、
    前記マップは、前記設定メモリにおける複数の記憶ビットのうちの各記憶ビットの前記クリティカリティクラスが、前記記憶ビットが統合される前記コードブロックの前記クリティカリティクラスであると特定し、
    前記方法は、
    エラー検出コードを用いて前記設定メモリ内の前記複数の記憶ビットの破損した1つにおける前記ソフトエラーを繰り返しチェックするステップと、
    各記憶ビットに対する複数のクリティカリティクラスの1つを特定する前記生成されたマップを用いて前記破損した記憶ビットのクリティカリティクラスを決定するステップと、
    複数の緩和技術の1つを開始するステップとをさらに含み、
    開始された前記緩和技術は、前記破損した記憶ビットの前記クリティカリティクラスに関連する、方法。
  8. 第1の前記緩和技術は、冗長なロジックへのフェイルオーバーを実行することを含み、
    第2の前記緩和技術は、前記設定メモリを再初期化することを含み、
    第3の前記緩和技術は、前記破損した記憶ビットを訂正することを含む、請求項に記載の方法。
  9. 第4の前記緩和技術は、前記ソフトエラーの通知を送信するとともに、前記破損した記憶ビットを訂正することを含み、
    第5の前記緩和技術は、前記ソフトエラーの通知を送信し、そうでなければ前記破損した記憶ビットを無視することを含む、請求項に記載の方法。
  10. 前記マップは、前記記憶ビットの1つおよび複数の状態の1つの各組み合わせに対するそれぞれの前記クリティカリティクラスの1つを特定し、
    前記設定するステップは、前記破損した記憶ビットおよび前記状態レジスタの状態の前記組み合わせに対して前記マップにおいて特定されたそれぞれの前記クリティカリティクラスを決定するステップを含み、
    前記開始するステップは、それぞれの前記クリティカリティクラスの各々に関連した前記緩和技術を開始するステップを含む、請求項7〜9のいずれか1項に記載の方法。
  11. 前記マップは、前記集積回路の外部のメモリに記憶される、請求項7〜9のいずれか1項に記載の方法。
  12. 前記マップは、前記集積回路内のメモリに記憶される、請求項7〜9のいずれか1項に記載の方法。
  13. 前記繰り返しチェックするステップは、エラー検出および訂正コードを用いて前記記憶ビットを繰り返し読み取るとともにチェックするステップを含む、請求項7〜9のいずれか1項に記載の方法。
  14. 通信製品であって、
    設定メモリを有する集積回路と、
    前記集積回路に結合され、エラー検出コードを用いて設定メモリ内の複数の記憶ビットの破損した1つにおけるソフトエラーを繰り返しチェックするチェック回路とを備え、
    各記憶ビットは、前記ユーザ設計の複数のコードブロックのうちの1つのコードブロックの部分を実行し、
    前記通信製品は、
    状態レジスタをさらに備え、
    前記状態レジスタは、前記プログラマブル集積回路において実行される複数のコードブロックのうちの1つのコードブロックがクリティカルデータ上で動作しているか否かを示し、
    前記通信製品は、
    前記チェック回路に結合される分類回路をさらに備え、
    前記分類回路は、前記状態レジスタと、各記憶ビットに対して前記状態レジスタの可能な状態に対するそれぞれのクリティカリティクラスを特定するマップとを用いて、前記チェック回路に応答して前記破損した記憶ビットの前記クリティカリティクラスを決定するように構成され、
    前記通信製品は、
    前記クリティカリティクラスに関連した複数の緩和技術を開始するための、前記分類回路に結合される訂正回路をさらに備え、
    前記訂正回路は、前記分類回路によって決定された前記クリティカリティクラスに関連した前記緩和技術を開始するように構成される、通信製品。
JP2013538733A 2010-11-19 2011-10-10 ソフトエラーのクリティカリティの分類およびクリティカリティに基づくソフトエラーの緩和 Active JP5486139B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/950,171 2010-11-19
US12/950,171 US8549379B2 (en) 2010-11-19 2010-11-19 Classifying a criticality of a soft error and mitigating the soft error based on the criticality
PCT/US2011/055593 WO2012067733A1 (en) 2010-11-19 2011-10-10 Classifying a criticality of a soft error and mitigating the soft error based on the criticality

Publications (2)

Publication Number Publication Date
JP2014502452A JP2014502452A (ja) 2014-01-30
JP5486139B2 true JP5486139B2 (ja) 2014-05-07

Family

ID=44898181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013538733A Active JP5486139B2 (ja) 2010-11-19 2011-10-10 ソフトエラーのクリティカリティの分類およびクリティカリティに基づくソフトエラーの緩和

Country Status (6)

Country Link
US (1) US8549379B2 (ja)
EP (1) EP2641174B1 (ja)
JP (1) JP5486139B2 (ja)
KR (1) KR101503198B1 (ja)
CN (1) CN103210375B (ja)
WO (1) WO2012067733A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208043B1 (en) 2013-03-15 2015-12-08 Xilinx, Inc. Method and apparatus for fault injection and verification on an integrated circuit
US8635581B1 (en) 2013-03-15 2014-01-21 Xilinx, Inc. Method and apparatus for single event upset (SEU) detection and correction
US8922242B1 (en) * 2014-02-20 2014-12-30 Xilinx, Inc. Single event upset mitigation
CN107278295B (zh) * 2015-03-25 2021-04-27 英特尔公司 用于存储器损坏检测架构的字节水平粒度的缓冲器上溢检测
US11385287B1 (en) * 2019-11-14 2022-07-12 Xilinx, Inc. Method for adaptively utilizing programmable logic devices

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665813B1 (en) * 2000-08-03 2003-12-16 International Business Machines Corporation Method and apparatus for updateable flash memory design and recovery with minimal redundancy
US7036059B1 (en) 2001-02-14 2006-04-25 Xilinx, Inc. Techniques for mitigating, detecting and correcting single event upset effects in systems using SRAM-based field programmable gate arrays
US7111224B1 (en) 2001-02-28 2006-09-19 Xilinx, Inc. FPGA configuration memory with built-in error correction mechanism
US6526559B2 (en) 2001-04-13 2003-02-25 Interface & Control Systems, Inc. Method for creating circuit redundancy in programmable logic devices
US7406573B2 (en) 2002-05-09 2008-07-29 Src Computers, Inc. Reconfigurable processor element utilizing both coarse and fine grained reconfigurable elements
US6624654B1 (en) 2002-05-16 2003-09-23 Xilinx, Inc. Methods for implementing circuits in programmable logic devices to minimize the effects of single event upsets
JP4374221B2 (ja) 2003-08-29 2009-12-02 パナソニック株式会社 コンピュータシステムおよび記録媒体
US7343578B1 (en) 2004-08-12 2008-03-11 Xilinx, Inc. Method and system for generating a bitstream view of a design
US7406673B1 (en) 2004-08-12 2008-07-29 Xilinx, Inc. Method and system for identifying essential configuration bits
US7263631B2 (en) * 2004-08-13 2007-08-28 Seakr Engineering, Incorporated Soft error detection and recovery
KR100645058B1 (ko) * 2004-11-03 2006-11-10 삼성전자주식회사 데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법
US20070011513A1 (en) * 2005-06-13 2007-01-11 Intel Corporation Selective activation of error mitigation based on bit level error count
US7212448B1 (en) 2005-07-19 2007-05-01 Xilinx, Inc. Method and apparatus for multiple context and high reliability operation of programmable logic devices
US7647543B2 (en) * 2006-02-01 2010-01-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Reprogrammable field programmable gate array with integrated system for mitigating effects of single event upsets
US7617437B2 (en) * 2006-02-21 2009-11-10 Freescale Semiconductor, Inc. Error correction device and method thereof
US20080189481A1 (en) 2007-02-07 2008-08-07 Peter Mayer Methods and systems for storing data based on a reliability requirement
US20090006720A1 (en) 2007-06-27 2009-01-01 Shai Traister Scheduling phased garbage collection and house keeping operations in a flash memory system
CN100533402C (zh) * 2007-07-03 2009-08-26 北京控制工程研究所 基于链接表的软件主动容错方法
US7576557B1 (en) 2008-03-26 2009-08-18 Xilinx, Inc. Method and apparatus for mitigating one or more event upsets
CN101349994B (zh) * 2008-09-23 2011-04-20 成都市华为赛门铁克科技有限公司 一种定位程序错误的方法、系统及装置
US8146028B1 (en) 2008-11-19 2012-03-27 Xilinx, Inc. Duplicate design flow for mitigation of soft errors in IC operation
US7894270B2 (en) 2009-02-11 2011-02-22 Mosys, Inc. Data restoration method for a non-volatile memory
US8433950B2 (en) 2009-03-17 2013-04-30 International Business Machines Corporation System to determine fault tolerance in an integrated circuit and associated methods
US8145959B2 (en) * 2009-10-23 2012-03-27 Avago Technologies Enterprise IP (Singapore) Pte. Ltd. Systems and methods for measuring soft errors and soft error rates in an application specific integrated circuit
CN102098737B (zh) 2009-12-11 2014-02-26 中兴通讯股份有限公司 一种基于小区优先级的协作调度方法及系统
US7852107B1 (en) 2010-02-18 2010-12-14 Xilinx, Inc. Single event upset mitigation

Also Published As

Publication number Publication date
KR20130086379A (ko) 2013-08-01
CN103210375A (zh) 2013-07-17
JP2014502452A (ja) 2014-01-30
WO2012067733A1 (en) 2012-05-24
US8549379B2 (en) 2013-10-01
EP2641174B1 (en) 2014-12-03
EP2641174A1 (en) 2013-09-25
US20120131417A1 (en) 2012-05-24
KR101503198B1 (ko) 2015-03-16
CN103210375B (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN108491288B (zh) 优先化错误检测与调度
US7328384B1 (en) Method and apparatus using device defects as an identifier
EP1848001B1 (en) Soft error location and sensitivity detection for programmable devices
US8694864B1 (en) Parallel processing error detection and location circuitry for configuration random-access memory
US10289483B2 (en) Methods and apparatus for embedding an error correction code in storage circuits
US8099625B1 (en) Self-checking and self-correcting internal configuration port circuitry
JP5486139B2 (ja) ソフトエラーのクリティカリティの分類およびクリティカリティに基づくソフトエラーの緩和
US9405612B2 (en) Fault repair apparatus, fault repair method and storage medium storing fault repair program
US7650585B1 (en) Implementing a user design in a programmable logic device with single event upset mitigation
US9575862B1 (en) Integrated circuits with error handling capabilities
US20180336307A1 (en) Method for designing an integrated circuit, and method of manufacturing the integrated circuit
JP2005235074A (ja) Fpgaのソフトエラー補正方法
US8713409B1 (en) Bit error mitigation
JP6220972B2 (ja) 集積回路およびプログラマブルデバイス
Bolchini et al. A reliable reconfiguration controller for fault-tolerant embedded systems on multi-FPGA platforms
TW201346529A (zh) 訊號處理電路以及使用該訊號處理電路的測試裝置
JP6326422B2 (ja) プログラマブルロジックデバイス、及び、論理集積ツール
US11372700B1 (en) Fault-tolerant data transfer between integrated circuits
Ehlig et al. Error detection in SRAM
JP6193112B2 (ja) メモリアクセス制御装置、メモリアクセス制御システム、メモリアクセス制御方法、及び、メモリアクセス制御プログラム
Schmidt et al. Optimizing scrubbing by netlist analysis for FPGA configuration bit classification and floorplanning
JP7364263B2 (ja) 多重化回路装置及びエラー修復方法
US20140372837A1 (en) Semiconductor integrated circuit and method of processing in semiconductor integrated circuit
Sannakki et al. Fault tolerance in network-on-chip by using single error correction and double error detection
JP2015201813A (ja) プログラマブルゲートアレイ

Legal Events

Date Code Title Description
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: 20140218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140220

R150 Certificate of patent or registration of utility model

Ref document number: 5486139

Country of ref document: JP

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